从 XmlDocument 中提取 XML 元素

Extract XML element from XmlDocument

我在 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>

我认为你的问题发生在你需要 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;