電子書籍の厳選無料作品が豊富!

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

何かヒントになるようなことでも良いので、皆様の知恵をお借りできれば幸いです。
よろしくお願い致します。

A 回答 (1件)

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'> といった具合で『'』『"』などで括っておかないと面白くないようです
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございました。

『'』が足りなかったんですね。
初歩的なミスでしたが、本当にありがとうございました。

お礼日時:2007/11/13 08:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!