HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0104
ようXMLDOMでgetNamedItemの戻り値がNULLの場合の対応2解決


よう

リンク

2010/1/4(Mon) 23:32:46|NO.29762

こんばんは。お知恵を拝借させてください。

XMLファイルを読む際に、必ず存在するとは限らない属性を読みたい場合(★部)に
存在しない場合のif文を書きたいのですが、条件の書き方がわかりません。

assertで見てみると、COMPTR $00000000 と出ていてNULLが返ってきているようなのですが
statは0が設定されており、判断できませんでした。



newcom oDom, "Microsoft.XMLDOM" oDom("async") = 0 // XMLデータ sdim strXML, 1024 strXML = {"<AAA> <BBB ccc=\"c1\" ddd=\"d1\" /> <BBB ccc=\"c2\" /> </AAA>"} oDom->"loadXML" strXML oRoot = oDom("documentElement") oNodesOf_AAA = oRoot("childNodes") nAAANodesNum = oNodesOf_AAA("length") // ノードの数 // 全データを表示 for i, 0, nAAANodesNum // itemを1つget oNode_BBB = oNodesOf_AAA("item", i) // attributesをget oAtrsOf_BBB = oNode_BBB("attributes") // attribute ccc をget oAtr_ccc = oAtrsOf_BBB("getNamedItem", "ccc") mes "[" + i + "]nodeValue ccc = " + oAtr_ccc("nodeValue") assert // ★attribute ddd をget oAtr_ddd = oAtrsOf_BBB("getNamedItem", "ddd") // if(なかったら){ // mes "[" + i + "]nodevalue ddd なし" // }else{ mes "[" + i + "]nodeValue ddd = " + oAtr_ddd("nodeValue") // } next delcom oDom stop


また掲示板への書き方・マナーや、コーディング等でよくないことがありましたらご指摘ください。
よろしくお願いします。



この記事に返信する


バウンサー

リンク

2010/1/5(Tue) 03:17:38|NO.29767

comオブジェクトが空かどうかはvaruseをつかえば判断できます。



よう

リンク

2010/1/5(Tue) 07:36:24|NO.29772

バウンサーさん、ありがとうございます。
下記で解決しました!


// ★attribute ddd をget oAtr_ddd = oAtrsOf_BBB("getNamedItem", "ddd") if(varuse(oatr_ddd) = 0 ){ mes "[" + i + "]nodevalue ddd なし" }else{ mes "[" + i + "]nodeValue ddd = " + oAtr_ddd("nodeValue") }

ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.