如何使用vbscript从xml文件中提取变量名及其值

时间:2012-04-04 05:37:04

标签: vbscript

我有以下xml文件&我想提取变量名称&它的价值。能帮我解决这个问题吗? 我的xml格式是

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="MyApps.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <connectionStrings>
        <add name="MyApps.Properties.Settings.dbConnString" connectionString="Data Source=MSTEST01\TQA;Initial Catalog=TQA;Persist Security Info=True;User ID=UserID;Password=Pwd"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <applicationSettings>
        <MyApps.Properties.Settings>
            <setting name="BasePath" serializeAs="String">
                <value>\\Results</value>
            </setting>
            <setting name="cPath" serializeAs="String">
                <value>C:\Controller</value>
            </setting>
            <setting name="ePath" serializeAs="String">
                <value>C:\Debug\E.exe</value>
            </setting>
            <setting name="fPath" serializeAs="String">
                <value>C:\Framework</value>
            </setting>
            <setting name="engineId" serializeAs="String">
                <value>1</value>
            </setting>
            <setting name="wPath" serializeAs="String">
                <value>C:\S5</value>
            </setting>
        </MyApps.Properties.Settings>
    </applicationSettings>
</configuration>

我希望输出像例如executablePath = “d:\ MYEXE.EXE”

提前致谢

2 个答案:

答案 0 :(得分:1)

您也可以尝试以下操作。利用getAttribute - Cscript vbs。

Set objXML2 = CreateObject("Microsoft.XMLDOM")
objXML2.async = "false"
strdir="c:\config.xml"
If (Not objXML2.load(strdir)) Then
    wscript.echo "Unable to load file '" & strdir & "'. "
    WScript.Quit(1)
End If

Set colNodes = objXML2.selectNodes ("/configuration/applicationSettings/Eunner.Properties.Settings")
For Each objNode in colNodes
    wscript.echo objnode.getAttribute("name")& " : " & objNode.text
Next

答案 1 :(得分:0)

最后我找到了答案,有人可以提出更好的选择吗?下面是为我而写的剧本

Set xmlDoc = CreateObject("Microsoft.XMLDOM")

xmlDoc.async = "False"
xmlDoc.Load ("C:\STEPRunRequest\STEPRunner.exe.config")
strQuery = "/configuration/applicationSettings/Eunner.Properties.Settings/*"

Set colItem = xmlDoc.SelectNodes(strQuery)
Set xmlElement = xmlDoc.DocumentElement.SelectSingleNode("/configuration/configSections[@connectionStrings]") '='" <SomeValue> & "'
Set queryNode = xmlDoc.SelectSingleNode(".//node()[@connectionString]")
MsgBox queryNode.Attributes(1).Text

For Each objItem In colItem
 If objItem.Attributes.Length > 0 Then
   MsgBox objItem.Attributes(0).Text & ": " & objItem.Text

 End If
Next