col*_*gem 2 c# xpath xmldocument selectnodes
我正在尝试创建一个通用的 XmlParsing 方法。以 Xml 为例:
<body>
<section>
<subsection1>
...
</subsection1>
<subsection2>
...
</subsection2>
</section>
<section>
<subsection1>
...
</subsection1>
<subsection2>
...
</subsection2>
</section>
</body>
Run Code Online (Sandbox Code Playgroud)
我试图获取所有“部分”节点,但不知道它们有多深或其父节点名称。
到目前为止我已经(我的 XML 是字符串格式)
XmlDocument xml = new XmlDocument();
xml.LoadXml(XMLtoRead);
XmlNodeList nodes = xml.DocumentElement.SelectNodes("//section");
Run Code Online (Sandbox Code Playgroud)
然而,节点计数始终为 0。我的印象是“//”前缀递归地在文档中搜索指定的节点。
我真正的 XML 是 SOAP 回复:
<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>
<Response xmlns="http://tempuri.org/">
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它不是通用的,而是特定于您的 SOAP 回复类型。;-) 尝试这个:
var ns = new XmlNamespaceManager(xml.NameTable);
ns.AddNamespace("ns", "http://tempuri.org/");
XmlNodeList nodes = xml.DocumentElement.SelectNodes("//ns:section", ns);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2062 次 |
| 最近记录: |