Welcome

首页 / 编程脚本 / vbscript 读取xml格式的配置文件

复制代码 代码如下:
Class clsGetProfile
" ルートドキュメント
Private rootDoc
" xmlファイル名とセクション名をセットする
" 引数: 「1」ファイル名 NOT NULL
" 戻り値:なし
Public Sub setProfile(strFileName)
Set data_xml = CreateObject("Microsoft.XMLDOM")
data_xml.async = False
data_xml.load(strFileName)
Set rootDoc = data_xml.documentElement
End Sub
" キーの対応する値を取得する
" 引数: 「1」キー名 NOT NULL
" 「2」セクション名 NOT NULL
" 戻り値:キーの対応する値
Public Function getItem(strSectionName, itemName)
Set sectionNode = rootDoc.selectSingleNode(strSectionName)
getItem = sectionNode.selectSingleNode(itemName).attributes(0).nodeValue
End Function
End Class
" 使用サンプル
" クラスインスタンスを生成する
"Dim config : Set config = New clsGetProfile
" 配置ファイル名とセクション名をセットする
"Call config.setProfile("Config.xml")
" きーの対応する値をゲットする
"WScript.Echo config.getItem("MessageDefine", "INFO.001")
"WScript.Echo config.getItem("MessageDefine", "INFO.003")
"WScript.Echo config.getItem("MessageDefine", "ERROR.009")
"WScript.Echo config.getItem("MessageDefine", "ERROR.012")
Class clsGetProfile
" ルートドキュメント
Private rootDoc
" xmlファイル名とセクション名をセットする
" 引数: 「1」ファイル名 NOT NULL
" 戻り値:なし
Public Sub setProfile(strFileName)
Set data_xml = CreateObject("Microsoft.XMLDOM")
data_xml.async = False
data_xml.load(strFileName)
Set rootDoc = data_xml.documentElement
End Sub
" キーの対応する値を取得する
" 引数: 「1」キー名 NOT NULL
" 「2」セクション名 NOT NULL
" 戻り値:キーの対応する値
Public Function getItem(strSectionName, itemName)
Set sectionNode = rootDoc.selectSingleNode(strSectionName)
getItem = sectionNode.selectSingleNode(itemName).attributes(0).nodeValue
End Function
End Class
" 使用サンプル
" クラスインスタンスを生成する
"Dim config : Set config = New clsGetProfile
" 配置ファイル名とセクション名をセットする
"Call config.setProfile("Config.xml")
" きーの対応する値をゲットする
"WScript.Echo config.getItem("MessageDefine", "INFO.001")
"WScript.Echo config.getItem("MessageDefine", "INFO.003")
"WScript.Echo config.getItem("MessageDefine", "ERROR.009")
"WScript.Echo config.getItem("MessageDefine", "ERROR.012")

配置文件格式:
复制代码 代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<!--メッセージ定義
-->
<MessageDefine>
<Info.001 value="処理開始。"/>
<Info.002 value="処理終了。"/>
<Info.003 value="処理異常終了。"/>
<Info.004 value="処理中止。"/>
</MessageDefine>
<!-- その他配置
-->
<OtherSection>
<host value="192.168.0.241"/>
<user value="root"/>
</OtherSection>
<WindowsLogToolConfig>
<host value="192.168.0.188"/>
<port value="3306"/>
</WindowsLogToolConfig>
</Configuration>