在VBScript中迭代XML文件的最有效方法是什么。
我正在寻找迭代XML文件中所有节点的方法。我不能使用XQL查询,因为我确实需要迭代所有节点来检查文件中的所有属性。
PS:基本上我正在编写一个脚本来替换对文件路径的引用。问题是这些文件路径可能位于很多地方。 (但那是我找到的)。我只需要XML迭代部分的帮助。
答案 0 :(得分:2)
虽然我怀疑在搜索中加入一些智能和XPath表达式可以提高效率,但
Option Explicit
Dim oXDoc : Set oXDoc = CreateObject( "Msxml2.DOMDocument" )
oXDoc.async = False
oXDoc.load "..\data\31677574.xml"
If 0 = oXDoc.ParseError Then
WScript.Echo oXDoc.documentElement.xml
walk oXDoc.documentElement, 0
Else
WScript.Echo oXDoc.ParseError.Reason
End If
Sub walk(e, i)
WScript.Echo Space(i), e.tagName
Dim a
For Each a In e.Attributes
WScript.Echo Space(i + 1), a.name, a.value
Next
Dim c
For Each c In e.childNodes
walk c, i + 2
Next
End Sub
输出:
cscript 31694559.vbs
<Configuration>
<Add SourcePath="\\sample" ApplicationEdition="32">
<Product ID="SampleProductID">
<Language ID="en-us"/>
<Language ID="en-us"/>
</Product>
</Add>
</Configuration>
Configuration
Add
SourcePath \\sample
ApplicationEdition 32
Product
ID SampleProductID
Language
ID en-us
Language
ID en-us
将访问所有元素及其属性。