重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

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

教えて下さい。以下のような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
というようにもやってみましたが、これでも同じエラーとなってしまいます。
何か方法はないでしょうか?アドバイスを宜しくお願いします。

A 回答 (1件)

if Not IsNull(node.childNodes(i).firstChild.nodeValue) then


でなくて
if node.childNodes(i).hasChildNodes then
とすればいいです
    • good
    • 0
この回答へのお礼

ありがとうございます。出来ました。
助かりました。本当にありがとうございます。

お礼日時:2006/02/23 15:41

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