1

我还是 XML 的新手,并且在我正在从事的这个项目上遇到了麻烦。我需要从 C# XmlDocument 中提取特定的 xml 元素。在下面的示例中,我想从 RATING 标签中提取 ns:AMOUNT 元素(结果应该是 193.13)。你将如何正确地做到这一点?非常感谢!

<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <ns:getResp xmlns:ns="http://example">
            <ns:jobReturn>
                <ns:ITEM>
                    <ns:AMOUNT>24.7</ns:AMOUNT>
                </ns:ITEM>
                <ns:RATING>
                    <ns:RefNum>1234567890</ns:RefNum>
                    <ns:AMOUNT>193.13</ns:AMOUNT>
                </ns:RATING>
            </ns:jobReturn>
        </ns:getResp>
    </soapenv:Body>
</soapenv:Envelope>
4

1 回答 1

1

我认为您的问题发生在您需要 XmlNamespaceManager 来处理 ns 部分。所以

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"your.xml");
XmlNamespaceManager ns = new XmlNamespaceManager(xmlDoc.NameTable);
ns.AddNamespace("ns", "http://example");
XmlNode node = xmlDoc.SelectSingleNode("//ns:RATING/ns:AMOUNT", ns);
var result = node.InnerText;
于 2016-12-18T04:59:28.670 回答