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