我發現了很多不同的如何解析XML文件的例子,而且大多數都讓我成爲那裏的一部分,但是我找不到一個能夠滿足我需要的例子。解析XML響應並返回對象集合
給出下面的XML響應
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ParentNode xmlns="http://my.own.namespace.com/">
<ChildNode>
<Value1>string<Value1>
<Value2>string<Value2>
</ChildNode>
<ChildNode>
<Value1>string<Value1>
<Value2>string<Value2>
</ChildNode>
</ParentNode>
</soap:Body>
</soap:Envelope>
如何返回填充了值1和值2的值ChildNode對象的集合?
到目前爲止,我已經得到了最遠的是讓所有的值1字符串列表,像這樣
var soap = XDocument.Parse(response);
XNamespace ns = XNamespace.Get("http://my.own.namespace.com/");
var objectList = soap.Decendents(ns + "ParentNode");
.Select(x => x.Elements().First.Value).ToList();
我也嘗試使用XSD工具,但是這給了那個http://my.own.namespace.com/:ParentNode未能發現錯誤。
感謝您的幫助,我敢肯定,這是解決
嘗試soap.Decendents(NS + 「// ParentNode」); 「//」選擇該類型的所有後代節點 – Oscar 2014-10-17 11:34:31
您應該使用WCF(System.ServiceModel)而不是直接使用XmlDocument解析XML(在System.Xml.Linq中) – 2014-10-17 11:34:48
應該指出這是在WinRT中univeral應用程序不支持服務參考 – lookitskris 2014-10-17 11:42:41