- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同じタグ名の項目取得)
同じタグ名の項目取得方法
このQ&Aのポイント
- XMLファイルにおいて、同じタグ名の項目を取得する方法を解説します。
- XMLファイルには、同じタグ名が複数存在する場合があります。そのような場合でも、特定の条件に合致する項目を取得することが可能です。
- C++のDOMを使用する場合、タグ名が同じである複数のNodeListを取得するには、条件判定を行う必要があります。条件に合致する項目のみを取得することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「条件付でNodeListは取得できない」ではなく 「NodeListを取得するのに条件を与えられない」です。 こういった処理を望むのであれば、自分で処理を記述しなければならないということです。 childNodesプロパティで得られる情報は、当該ノードの子、全てをコレクションとして含むNodeListということになります。 「”氏名○○”のリストのみ取得する」という処理をしたいのであれば、『childNodesプロパティを使用して<個人>ノードを全て取得した後、さらに<氏名>ノードを取得して判断』という流れになるでのしょう。 この件に関して言えば、ネームスペースは『自分で判断する』必要があります。
その他の回答 (1)
- MetalKing
- ベストアンサー率57% (15/26)
回答No.1
NodeListを取得するにはchildNodesプロパティが使えます。 条件付でNodeListを取得する方法は標準では提供されていないようです。MicrosoftのパーサだとSelectNodesというメソッドが提供されていますが...。
質問者
補足
迅速な回答、ありがとうございました。 条件付でNodeListは取得できない・・・ということでしょうか・・・ まだ勉強不足で完全には理解していないのですが、「名前空間」を使って、タグ名がかぶっていても欲しいリストだけ拾ってくる・・・ということはできないですか??
お礼
お礼が遅くなり,申し訳ございません。 childNodesプロパティを使うのですね。ありがとうございます。 今、MSXMLパーサ4.0でDOMを使ってVC6.0で質問で挙げたようなxmlファイル操作のプログラムを作成しています。 COMプログラミングでの文法が難しく、childNodesでのノードの取りかたが分かりません・・・。 今、getTagNameで上のxmlファイルだと、<住所>を指定して最初の <住所>東京都</住所> しか取れません。<住所>千葉県</住所>も取るにはどうすればいいのでしょうか・・・別途新しい質問を立てたほうがいいのかも知れませんが、是非よろしくお願い致します。