微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

提取xml的节点值时出错.错误:需要命名空间管理器或XsltContext

我试图在xml中提取节点的值.由于其名称空间,我面临一些问题.在xml下面,我想要’faultstring’标签的值.

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
 <SOAP-ENV:Fault>
  <faultcode>Error</faultcode>
  <faultstring>Invalid combination of Username and Password.</faultstring>
  </SOAP-ENV:Fault>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我使用以下代码获取值.但它会引发错误.

Dim xmlDoc As New XmlDocument
    Dim namespaces As XmlNamespaceManager = New XmlNamespaceManager(xmlDoc.NaMetable)

    namespaces.AddNamespace("ns","SOAP-ENV")
    xmlDoc.Load("SOAP.xml")
    Dim oNode = xmlDoc.SelectSingleNode("ns:Envelope/ns:Body/ns:Fault/faultstring")
    MsgBox(oNode.InnerXml.ToString)

我没有得到任何解决方案.如果有人可以帮助这个!谢谢 !

解决方法

由于我对我的问题没有任何帮助,我试了试.解决方代码如下.

Dim xmlDoc As New XmlDocument
    Dim namespaces As XmlNamespaceManager = New XmlNamespaceManager(xmlDoc.NaMetable)

    namespaces.AddNamespace("SOAP-ENV","http://schemas.xmlsoap.org/soap/envelope/")
    xmlDoc.Load("SOAP.xml")

    Dim xPathString = "/SOAP-ENV:Envelope/SOAP-ENV:Body/SOAP-ENV:Fault/faultstring"
    Dim oNode = xmlDoc.SelectSingleNode(xPathString,namespaces)

它现在工作正常!!欢呼!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。