加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 23:29:43 所属栏目:百科 来源:网络整理
导读:任何人都可以建议跳过第一次出现 XML的第一个节点并从第二个节点开始迭代的最佳方法. 在下面的示例中,我想跳过第一次出现的节点“word”并开始迭代从第二次出现的节点“word”.提前致谢. words word nameVowel/name /word word valuea/value /word word valu
任何人都可以建议跳过第一次出现 XML的第一个节点并从第二个节点开始迭代的最佳方法.
在下面的示例中,我想跳过第一次出现的节点“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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读