2016-12-13 3 views
0

1つのXMLファイルだけを読み取っているVBScriptから出力を取得しようとしています。 このXMLファイルはCに位置しています:スクリプト\ \のLicense.xmlVBScriptを使用してXMLファイルの子タグを読み取る方法

<?xml version="1.0" encoding="utf-8"?> 
<License xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XM LSchema-instance" xmlns="http://tempuri.org/License.xsd"> 
<Network> 
<NetworkName>TestName</NetworkName> 
<NetworkID>29</NetworkID> 
<Region>1</Region> 
<MaxDisplays>375</MaxDisplays> 
<Expiry>2017-05-25</Expiry> 
<Issued>2016-12-11</Issued> 
<Communicator>ZZ007007007</Communicator> 

私はZabbixのは、XMLファイルの有効期限タグを監視するためのVBScriptを使用したいです。

Dim licDate 
Set xmlDoc = CreateObject("Msxml2.DOMDocument") 
xmlDoc.load("C:\scripts\license.xml") 

licDate = xmlDoc.getElementsByTagName("Expiry").item(0).text 

itemInfo= licDate 
MsgBox itemInfo 

このコードは機能していないようです。 私はエラーを取得する:オブジェクト必要: 'xmlDoc.getElementsByTagName(...)アイテム(...)。'

答えて

0

mentioned in the remarks section for getElementsByTagName on MSDNとして:

The getElementsByTagName method simulates the matching of the provided argument against the result of the tagName property of IXMLDOMElement . When executed, it does not recognize or support namespaces. Instead, you should use the selectNodes method, which is faster in some cases and can support more complex searches.

あなたはそのため二つの選択肢がある - ドキュメントのようにしてくださいを各タグを手動でループすることができます。

xmlDoc.setProperty "SelectionNamespaces", "xmlns:default='http://tempuri.org/License.xsd'" 
Set expiry = xmlDoc.selectSingleNode("//default:Expiry") 
Wscript.Echo expiry.text 

2017-05-25


Set nodeList = xmlDoc.getElementsByTagName("*") 
For index = 0 To nodeList.Length - 1 
    Set element = nodeList.item(index) 
    If element.tagName = "Expiry" Then 
     Wscript.Echo element.text 
    End If 
Next 
関連する問題