Linq duplicate elements when iterating over XML

topranger123

New Member
\[code\] <?xml version='1.0' encoding='utf-8' standalone='yes'?> <stock-items> <stock-item> <name>Loader 34</name> <sku>45GH6</sku> <vendor>HITINANY</vendor> <useage>Lifter 45 models B to C</useage> <typeid>01</typeid> <version>01</version> <reference>33</reference> <comments>EOL item. No Re-order</comments> <traits> <header>56765</header> <site>H4</site> <site>A6</site> <site>V1</site> </traits> <type-validators> <actions> <endurance-tester>bake/shake</endurance-tester> </actions> <rules> <results-file>Test-Results.txt</results-file> <file-must-contain file-name="Test-Results.xml"> <search> <term>[<![CDATA[<"TEST TYPES 23 & 49 PASSED"/>]]></term> <search-type>exactMatch</search-type> </search> </file-must-contain> </rules> </type-validators> </stock-item> </stock-items>\[/code\]Im trying to get the rules fragment from the xml above into a string so it can be added to a database. Currently the search element and its contents are added twice. I know why this is happing but cant figure out how to prevent it.Heres my code\[code\] var Rules = from rules in Type.Descendants("rules") select rules.Descendants(); StringBuilder RulesString = new StringBuilder(); foreach (var rule in Rules) { foreach (var item in rule) { RulesString.AppendLine(item.ToString()); } } Console.WriteLine(RulesString);\[/code\]Finally any elements in rules are optional and some of these elements may or may not contain other child elements up to 4 or 5 levels deep. TIAUPDATE: To try and make it clearer what im trying to achieve. From the xml above I should end up with a string containing everthing in the rules element, exactly like this:\[code\]<results-file>Test-Results.txt</results-file> <file-must-contain file-name="Test-Results.xml"> <search> <term>[<![CDATA[<"TEST TYPES 23 & 49 PASSED"/>]]></term> <search-type>exactMatch</search-type> </search> </file-must-contain>\[/code\]
 
Back
Top