跳过第一个节点并从VBS中的xml的第二个节点进行迭代

时间:2016-02-12 10:13:52

标签: vbscript xml-parsing

任何人都可以建议跳过第一次出现的XML第一个节点并从第二个节点开始迭代的最佳方法。 在下面的示例中,我想跳过第一次出现的节点" word"并开始迭代第二次出现的节点" word"。提前谢谢。

<words>
 <word>
  <name>Vowel</name>
 </word>
 <word>
  <value>a</value>
 </word>
 <word>
  <value>Vowel</value>
 </word>
</words>

1 个答案:

答案 0 :(得分:1)

节点的子节点在其childNodes集合中收集。要跳过节点,您需要按编号/索引循环遍历childNodes,而不是更频繁的For Each方法。在代码中:

HyperLinkField

输出:

Option Explicit

Dim sXPath : sXPath    = "/words"
Dim oXDoc  : Set oXDoc = CreateObject("Msxml2.DOMDocument.6.0")
oXDoc.setProperty "SelectionLanguage", "XPath"
oXDoc.async = False
oXDoc.load "35359922.xml"

If 0 = oXDoc.ParseError Then
   Dim ndWords : Set ndWords = oXDoc.selectSingleNode(sXPath)
   If ndWords Is Nothing Then
      WScript.Echo "|", sXPath, "| not found"
   Else
      WScript.Echo "found " & ndWords.childNodes.length & " nodes."
      Dim i
      For i = 1 To ndWords.childNodes.length - 1
          WScript.Echo i, ndWords.childNodes(i).text
      Next
   End If

Else
   WScript.Echo oXDoc.ParseError.Reason
End If