gpt4 book ai didi

c# XmlDocument SelectNodes 不返回节点

转载 作者:太空宇宙 更新时间:2023-11-03 23:39:55 24 4
gpt4 key购买 nike

我正在尝试创建一个通用的 XmlParsing 方法。以 Xml 为例:

<body>
<section>
<subsection1>
...
</subsection1>
<subsection2>
...
</subsection2>
</section>
<section>
<subsection1>
...
</subsection1>
<subsection2>
...
</subsection2>
</section>
</body>

我试图在不知道它们有多深或它们的父节点名称的情况下获取所有“部分”节点。

到目前为止我有(我的 XML 是字符串格式)

        XmlDocument xml = new XmlDocument();
xml.LoadXml(XMLtoRead);

XmlNodeList nodes = xml.DocumentElement.SelectNodes("//section");

但是节点计数始终为 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/">

最佳答案

在那种情况下,它不是通用的,而是特定于您的 SOAP 回复类型。 ;-)试试这个:

var ns = new XmlNamespaceManager(xml.NameTable);
ns.AddNamespace("ns", "http://tempuri.org/");
XmlNodeList nodes = xml.DocumentElement.SelectNodes("//ns:section", ns);

关于c# XmlDocument SelectNodes 不返回节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29410698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com