Jyo*_*ngh 5 vbscript xml-parsing
任何人都可以建议跳过第一次出现XML的第一个节点并从第二个节点开始迭代的最佳方法.在下面的示例中,我想跳过第一次出现的节点"word"并开始迭代从第二次出现的节点"word".提前致谢.
<words>
<word>
<name>Vowel</name>
</word>
<word>
<value>a</value>
</word>
<word>
<value>Vowel</value>
</word>
</words>
Run Code Online (Sandbox Code Playgroud)
节点的子节点收集在其 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
Run Code Online (Sandbox Code Playgroud)
输出:
cscript 35359922.vbs
found 3 nodes.
1 a
2 Vowel
Run Code Online (Sandbox Code Playgroud)