code_junkie

What is a good way to find a specific value in an XML document using C#?

Nov 13th, 2011
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. <env:Envelope
  2. xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
  3. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:ns0="http://dev1/MyWebService1.wsdl">
  6. <env:Header>
  7. <wsse:Security
  8. xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
  9. xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
  10. xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
  11. env:mustUnderstand="1"/>
  12. </env:Header>
  13. <env:Body>
  14. <ns0:getItemNbrByItemIdResponseElement>
  15. <ns0:result>1010603</ns0:result>
  16. </ns0:getItemNbrByItemIdResponseElement>
  17. </env:Body>
  18. </env:Envelope>
  19.  
  20. XNamespace ns0 = "http://dev1/MyWebService1.wsdl";
  21.  
  22. String result = doc.Descendants(ns0 + "result").First().Value;
  23.  
  24. XPathDocument xmldoc = new XPathDocument(@"C:tmpsample.xml");
  25. XPathNavigator nav = xmldoc.CreateNavigator();
  26.  
  27. XmlNamespaceManager nsMgr = new XmlNamespaceManager(nav.NameTable);
  28. nsMgr.AddNamespace("ns0", "http://dev1/MyWebService1.wsdl");
  29.  
  30. XPathNavigator result = nav.SelectSingleNode("//ns0:result", nsMgr);
  31. System.Diagnostics.Debug.WriteLine(result.Value);
  32.  
  33. XmlDocument doc = new XmlDocument();
  34. doc.PreserveWhitespace = true;
  35.  
  36. XmlNamespaceManager mgr = GetNamespace(doc);
  37. doc.LoadXml(xmltext);
  38.  
  39. XmlNode nd = doc.DocumentElement.SelectSingleNode("//ns0:result", mgr);
  40.  
  41. private XmlNamespaceManager GetNamespace(XmlDocument document)
  42. {
  43. XmlNamespaceManager mgr = new XmlNamespaceManager(document.NameTable);
  44. mgr.AddNamespace("ns0", "http://dev1/MyWebService1.wsdl");
  45. return mgr;
  46. }
  47.  
  48. XmlDocument xmlDoc = new XmlDocument();
  49.  
  50. XNamespace ns0 = "http://dev1/MyWebService1.wsdl";
  51.  
  52. xmlDoc.Load(request.GetResponse().GetResponseStream());
  53.  
  54. XDocument xDoc = XDocument.Load(new XmlNodeReader(xmlDoc));
  55.  
  56. String result = xDoc.Descendants(ns0 + "result").First().Value;
  57.  
  58. XPathNavigator navigator = document.CreateNavigator();
  59.  
  60. string res = (string)navigator.Evaluate("normalize-space(/)");
Add Comment
Please, Sign In to add comment