任何人都可以建议跳过第一次出现
XML的第一个节点并从第二个节点开始迭代的最佳方法.
在下面的示例中,我想跳过第一次出现的节点“word”并开始迭代从第二次出现的节点“word”.提前致谢.
在下面的示例中,我想跳过第一次出现的节点“word”并开始迭代从第二次出现的节点“word”.提前致谢.
<words> <word> <name>Vowel</name> </word> <word> <value>a</value> </word> <word> <value>Vowel</value> </word> </words>
解决方法
节点的子节点在其childNodes集合中收集.要跳过节点,您需要按编号/索引循环遍历childNodes,而不是更频繁的For Each方法.在代码中:
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
输出:
cscript 35359922.vbs found 3 nodes. 1 a 2 Vowel