2016-02-12 65 views
5
从XML的第二个节点重复

任何人都可以建议跳过XML的第一个节点的第一次出现,并从第二个节点开始迭代的最好方式。 在下面的例子中,我要跳过的节点“字”第一次出现时,开始迭代形成节点“字”的第二次出现。提前致谢。跳过第一个节点,并在VBS

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

回答

1

节点的子节点的childNodes集合收集。要跳过节点上,您需要在循环遍历的childNodes通过数/指数,而不是更常见的每种方法。在代码:

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 
+0

感谢您的解决方案,谢谢。 –