Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XML string to XML document

Tags:

c#

xml

I have a whole XML document in a String which i need to convert to a XML document and parse tags in the document

like image 996
Sudantha Avatar asked Jun 19 '11 13:06

Sudantha


People also ask

How do I load a string in XML?

To load XML from a string To populate an XML literal such as an XElement or XDocument object from a string, you can use the Parse method. The following code example shows the use of the XDocument. Parse(String) method to populate an XDocument object with XML from a string.

Can we convert string to XML in Java?

Document convertStringToDocument(String xmlStr) : This method will take input as String and then convert it to DOM Document and return it. We will use InputSource and StringReader for this conversion.

How do I save an XML file from a string in Java?

setOutputProperty(OutputKeys. INDENT, "yes" ); StreamResult result = new StreamResult( new FileWriter( "C:\\Data\\RT. xml" ));


2 Answers

This code sample is taken from csharp-examples.net, written by Jan Slama:

To find nodes in an XML file you can use XPath expressions. Method XmlNode.Selec­tNodes returns a list of nodes selected by the XPath string. Method XmlNode.Selec­tSingleNode finds the first node that matches the XPath string.

XML:

<Names>     <Name>         <FirstName>John</FirstName>         <LastName>Smith</LastName>     </Name>     <Name>         <FirstName>James</FirstName>         <LastName>White</LastName>     </Name> </Names> 

CODE:

XmlDocument xml = new XmlDocument(); xml.LoadXml(myXmlString); // suppose that myXmlString contains "<Names>...</Names>"  XmlNodeList xnList = xml.SelectNodes("/Names/Name"); foreach (XmlNode xn in xnList) {   string firstName = xn["FirstName"].InnerText;   string lastName = xn["LastName"].InnerText;   Console.WriteLine("Name: {0} {1}", firstName, lastName); } 
like image 146
Saurabh Avatar answered Oct 02 '22 08:10

Saurabh


Using Linq to xml

Add a reference to System.Xml.Linq

and use

XDocument.Parse(string xmlString) 

Edit: Sample follows, 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> 

C# usage...

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 produces the following output: 0002 0006

like image 38
almog.ori Avatar answered Oct 02 '22 07:10

almog.ori