2017-06-15 59 views
-3

我要解析和XML XML具有以下結構:解析使用VBScript

<?xml version="1.0" encoding="utf-8"?> 
<UserConfig> 
<add key="key1" value="value1" /> 
<add key="key2" value="value2" /> 
</UserConfig> 
+1

您是否注意到此頁面右側的「相關」列?你有沒有做過任何研究? –

+0

你試過了什麼? –

+0

我試過尋找一些解析解決方案。無法找到任何與我期望分析的xml相關的東西。 –

回答

0

爲了讓您一開始我結合了兩個答案this question

Option Explicit 

Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject") 
Dim sFSpec : sFSpec = oFS.GetAbsolutePathName(".\44567515.xml") 
Dim oXML : Set oXML = CreateObject("Msxml2.DOMDocument.6.0") 
oXML.load sFSpec 
If 0 = oXML.parseError Then 
    recursiveTraversal oXML.documentElement, 0 
    WScript.Echo "------------" 
    Dim sXPath : sXPath = "//add[@key='key2']" 
    Dim nodes : Set nodes = oXML.selectNodes(sXPath) 
    If 0 = nodes.length Then 
     WScript.Echo "no nodes for", sXPath 
    Else 
    WScript.Echo nodes(0).nodeName 
    WScript.Echo nodes(0).getAttribute("value") 
    End If 
Else 
    WScript.Echo objMSXML.parseError.reason 
End If 

Sub recursiveTraversal(oElm, nIndent) 
WScript.Echo Space(nIndent), oElm.tagName 
If 0 < oElm.childNodes.length Then 
    Dim oChild 
    For Each oChild In oElm.childNodes 
     recursiveTraversal oChild, nIndent + 2 
    Next 
Else 
    If 0 < oElm.attributes.length Then 
     Dim oAttr 
     For Each oAttr In oElm.attributes 
      WScript.Echo Space(nIndent + 1), oAttr.name, oAttr.value 
     Next 
    End If 
End If 
End Sub 

輸出:

cscript 44567515.vbs 
UserConfig 
    add 
    key key1 
    value value1 
    add 
    key key2 
    value value2 
------------ 
add 
value2 
+0

謝謝@ Ekkehard.Horner--幫助。雖然我發現我只是在尋找node.getAttribute()方法,但無法正確使用它 - 我的不好。你的迴應也非常有幫助。 :) –