Using Linq to xml
Add a link to System.Xml.Linq
and use
XDocument.Parse(string xmlString)
Edit: The sample follows the xml data (TestConfig.xml) ..
<?xml version="1.0"?> <Tests> <Test TestId="0001" TestType="CMD"> <Name>Convert number to string</Name> <CommandLine>Examp1.EXE</CommandLine> <Input>1</Input> <Output>One</Output> </Test> <Test TestId="0002" TestType="CMD"> <Name>Find succeeding characters</Name> <CommandLine>Examp2.EXE</CommandLine> <Input>abc</Input> <Output>def</Output> </Test> <Test TestId="0003" TestType="GUI"> <Name>Convert multiple numbers to strings</Name> <CommandLine>Examp2.EXE /Verbose</CommandLine> <Input>123</Input> <Output>One Two Three</Output> </Test> <Test TestId="0004" TestType="GUI"> <Name>Find correlated key</Name> <CommandLine>Examp3.EXE</CommandLine> <Input>a1</Input> <Output>b1</Output> </Test> <Test TestId="0005" TestType="GUI"> <Name>Count characters</Name> <CommandLine>FinalExamp.EXE</CommandLine> <Input>This is a test</Input> <Output>14</Output> </Test> <Test TestId="0006" TestType="GUI"> <Name>Another Test</Name> <CommandLine>Examp2.EXE</CommandLine> <Input>Test Input</Input> <Output>10</Output> </Test> </Tests>
Using C # ...
XElement root = XElement.Load("TestConfig.xml"); IEnumerable<XElement> tests = from el in root.Elements("Test") where (string)el.Element("CommandLine") == "Examp2.EXE" select el; foreach (XElement el in tests) Console.WriteLine((string)el.Attribute("TestId"));
This code displays the following result: 0002 0006
almog.ori Jun 19 '11 at 1:30 p.m. 2011-06-19 13:30
source share