2017-11-09 9 views
0

<EventID>1</EventID>でノードをリストしようとしていますが、エラーが発生します ノードテストが必要です。ノードリストはどのように入手できますか?

私は、次のコードを持っていますが、私はそれを実行したときに、私は次のエラーを取得する:

error image

誰かが私が間違っているのかを説明することはできますか?

dim xml,node,nodes,Root,strNames 
'Set xml = CreateObject("Microsoft.XMLDOM") 
Set xml = CreateObject("MSXML2.DOMDocument.6.0") 
xml.Async = False 
xml.Load "C:\Test\Week\cr_history.txt" 
xml.setProperty "SelectionLanguage","XPath" 


For Each Node in xml.selectnodes("//DS001History/[@EventID='1']") 
    strNames=Node.name 
Next 
msgbox strNames 
+1

をお試しくださいフェッチしようとしているノードは何ですか?この情報がなければ、他人がどのように助けてくれると思いますか? – Gurman

+0

あなたのXMLを投稿してください。 –

答えて

0

xpathを//DS001History/EventID[number(text())=1]に変更する必要があります。これにより、DS001Historyの値が1であるすべてのEventIDがフェッチされます。私が数値だけを一致させるためには、number()も使用しました。 //DS001History/EventID[text()=1]または//DS001History/EventID[text()='1']も使用できます。

値1のすべてのEventIDをフェッチする場合は、単に//EventID[text()=1]を使用します。 xpathクエリで親のパスを与える必要はありません。

どこxmlのですか?次のコード

dim xml,node,nodes,Root,strNames 
Set xml = CreateObject("MSXML2.DOMDocument.6.0") 
xml.Async = False 
xml.Load "C:\Users\pankaj.jaju\Desktop\test.xml" 
xml.setProperty "SelectionLanguage","XPath" 

strNames = "" 
For Each Node in xml.selectnodes("//DS001History/EventID[number(text())=1]") 
    strNames = strNames & Node.tagname 
Next 
msgbox strNames 
関連する問題