• ベストアンサー
  • すぐに回答を!

VBscriptでXMLデータの抽出に関する質問

  • 質問No.1985504
  • 閲覧数1053
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 83% (5/6)

教えて下さい。以下のようなXMLファイルがあります。
<?xml version="1.0" encoding="Shift-JIS"?>
<ROOT>
<INFO>
<NO>0001</NO>
<NAME>ABC</NAME>
<COMMENT>
</COMMENT>
<AGE>30</AGE>
</INFO>

</ROOT>

これを以下のようにVBScriptにてデータを取り出したいです。

Dim DOM, docRoot, node, nodeList, i, m
Dim objADO, objADO2
Dim objRS
Dim sqlstmt, strSQL
Dim no, comment

'DOMオブジェクト生成
Set DOM = CreateObject("Microsoft.XMLDOM")
'同期モード
DOM.async = True
'XMLを読み込む
DOM.load("11.xml")
'ルートセット
Set docRoot = DOM.documentElement

'ノードの設定
Set nodeList = docRoot.selectNodes("/ROOT/INFO")
'ループ
For Each node In nodeList
For i = 0 to node.ChildNodes.length - 1
Select case node.childNodes(i).nodeName
case "NO"
no = node.childNodes(i).firstChild.nodeValue
case "COMMENT"
comment = node.childNodes(i).firstChild.nodeValue
End select
Next
Next

ところがCOMMENTタグのようにデータが空のものがあると
「オブジェクトがありません」とエラーになります。
if Not IsNull(node.childNodes(i).firstChild.nodeValue) then
というようにもやってみましたが、これでも同じエラーとなってしまいます。
何か方法はないでしょうか?アドバイスを宜しくお願いします。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 50% (3003/5914)

if Not IsNull(node.childNodes(i).firstChild.nodeValue) then
でなくて
if node.childNodes(i).hasChildNodes then
とすればいいです
お礼コメント
otzotz

お礼率 83% (5/6)

ありがとうございます。出来ました。
助かりました。本当にありがとうございます。
投稿日時:2006/02/23 15:41
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

ピックアップ

ページ先頭へ