VB2005、XMLの初心者です。
下記XMLの「ヤマダタロウ」を抽出するのがうまくいきません。
<Module>
<Body>
<Item Code= A TableId=001>
<Name>ヤマダタロウ</Name>
</Item>
<Item Code= B TableId=001>
<Name>山田太郎</Name>
</Item>
</Body>
</Module>
上記XMLがmsxmlDocとして引数で下記プロシージャに渡されるのですが、selectNodesではなぜか取得できません。
どこか間違っているでしょうか。
Private Sub prvParseXML(Byval msxmlDoc As MSXML2.DOMDocument)
Dim NodeList As MSXML2.IXMLDOMNodeList
NodeList = msxmlDoc.selectNodes("/Module/Body/Item[@Code='A'][@tableId='001']/Name")
End Sub
何かヒントになるようなことでも良いので、皆様の知恵をお借りできれば幸いです。
よろしくお願い致します。
XMLファイルのItemの属性データが ""で括っていないからのようですよ
MSXML4.0を参照設定しておいて
dim xmlDoc as MSXML2DomDocument
' 『"』が無いとここで失敗して selectNodesまで行かない
if xmlDoc.load("ファイルパス") then
dim nList as MSXML2.IXMLNodeList
nList = xmlDoc.selectNodes("/Module/Body/Item[@Code='A'][@TableID='001']/Name")
if nList.Length > 0 then
MsgBox( nList(0).text )
end if
end if
<Item Code='A' TableId='001'> といった具合で『'』『"』などで括っておかないと面白くないようです
お礼
早速のお返事ありがとうございました。 『'』が足りなかったんですね。 初歩的なミスでしたが、本当にありがとうございました。