MSXMLにおけるxmlコメントタグの扱いについて – プログラミング – Home

MSXMLにおけるxmlコメントタグの...
 
通知
すべてクリア

MSXMLにおけるxmlコメントタグの扱いについて


owner
 owner
(@owner)
ゲスト
結合: 20年前
投稿: 3
Topic starter  

コメントタグを含むXMLをMSXMLで読み込もうとしたところうまくいきませんでした。
皆さんは、どうやってコメントタグを処理されているのでしょうか?
お知恵をお貸しください。

*環境:VS.net 2003 VC++7,Win32,MSXML

以下のようなxmlを読み込む処理をするとします

---test.xml---ver1-----

<?xml version=1.0 encoding=Shift_JIS?>

<root>
<a>1</a>
<b>2</b>
<c>3</c>
</root>

-----------------
プログラム一部抜粋

for ( MSXML::IXMLDOMElementPtr element = Parent->firstChild; element != 0;
element = element->nextSibling ) {
 root内のタグを判別して何らかの処理
}

以上のような処理で、通常は問題ないのですが
test.xmlに以下のようにコメントを入れたところ正常に機能しなくなりました.

---test.xml--ver2------

<?xml version=1.0 encoding=Shift_JIS?>

<root>
<!-- coment test -->
<a>1</a>
<b>2</b>
<c>3</c>
</root>

-----------------
このxmlファイルのばあい

element = Parent->firstChild
において element == 0 になってしまいます。
element->nodeType == NODE_COMMENT などでコメントタグをはじこうとしても
elementそのものが0ではどうしようもありませんでした。

コメントタグ以降のデータにアクセスするにはどうしたらよいでしょうか?
また、パーサの設定などでコメントを完全に無視するフラグなのは存在するのでしょうか?

以上よろしくお願いします


引用解決済
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> MSXML::IXMLDOMElementPtr element = Parent->firstChild;

コメントNodeは、Elementではありませんので、
MSXML::IXMLDOMElementPtr には代入できないでしょう。

for (MSXML::IXMLDOMNodePtr node = Parent->firstChild; ...) {
if (node->タイプ == エレメント) {
// ここでやっとElementにキャストできる。
MSXML::IXMLDOMElementPtr element = node;
}
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました