选择关注者标记,在msxml中选择单个节点

时间:2014-07-07 09:24:29

标签: xml vbscript xml-parsing xmldocument msxml

如何从带有VBScript Msxml的xml中选择MEDIUM

<reference_list>
    <reference_tag>VAT</reference_tag>
    <reference_value>123</reference_value>
</reference_list>
<reference_list>
    <reference_tag>PRIORITY</reference_tag>
    <reference_value>MEDIUM</reference_value>
</reference_list>

我目前选择了PRIORITY标签,但我想跟随者reference_value的值MEDIUM:

xmlDoc.selectNodes("//insert_shipment/reference_list[reference_tag ='PRIORITY']")

现在循环不是一个选项,我必须选择那个。

1 个答案:

答案 0 :(得分:1)

如果您确定只有一个目标节点,请使用.selectSingleNode - 如:

  Dim objXML : Set objXML = CreateObject("MSXML2.DOMDocument")
  objXML.async = false
  objXML.load "../data/24607195.xml"

  If objXML.parseError Then ' never without my check
     WScript.Echo objXML.parseError.reason
  Else
     'Find single reference_value MEDIUM
     Dim sXPath : sXPath = "/insert_shipment/reference_list/reference_value[. = 'MEDIUM']"
     Dim ndMedium : Set ndMedium = objXML.selectSingleNode(sXPath)
     If ndMedium Is Nothing Then ' never without my check
        WScript.Echo "fail:", sXPath
     Else
        WScript.Echo ndMedium.parentNode.firstChild.text, ndMedium.xml
     End If
  End If