2017-06-15 10 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に2つの答えを組み合わせ始めるには:

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()メソッドを探していて、それを正しく使うことができなかったことを知りましたが、悪いです。あなたの反応もとても役に立ちました。 :) –

関連する問題