2016-02-12 67 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

感謝您的解決方案,謝謝。 –