MSXMLでXMLの要素の取得について

[戻る]
もじもじ 2008/10/14(火) 19:30:06
以下のXMLをgetElementsByTagNameを使用して読み込みたいのですが、
getElementsByTagNameを使用するまでのコードが記述できません。以下、コードの続きは
どのようにしたらよいでしょうか。

■XML文書
<AAAA>A1</AAAA>
<BBBB>B1</BBBB>
<BBBB>B2</BBBB>
<AAAA>A2</AAAA>
<BBBB>B3</BBBB>
<BBBB>B4</BBBB>
※AAAA要素内にBBBB要素を2つ持っているイメージ。
 AAAA要素のノードリストを作成し、ノード1の要素B1・B2、ノード2の要素B3・B4・・・
と取得していくイメージです。


CComPtr<MSXML::IXMLDOMDocument> gXmldom;
Func()
{
   // COMの初期化等は省略

   // AAAAのノードリストを作成する
   MSXML::IXMLDOMNodeListPtr plName;
   gXmldom->getElementsByTagName(A2W("AAAA"), &plName);

   for (int i = 0; i < 2; i++)
   {
      ★★★質問★★★
      A1の子ノードBBBBのB1・B2、A2の子ノードBBBBのB3・B4・・・と取得したいです。
      ここにどのようなコードを記述すればB1・B2、B3・B4と取得できるのでしょうか?
      getElementsByTagNameでBBBBを指定して取得できればいいのですが。
   }
}

上記につきまして、ご教授願います。

maru 2008/10/14(火) 19:41:47
> <AAAA>A1</AAAA>
> <BBBB>B1</BBBB>
> <BBBB>B2</BBBB>
> <AAAA>A2</AAAA>
> <BBBB>B3</BBBB>
> <BBBB>B4</BBBB>> ※AAAA要素内にBBBB要素を2つ持っているイメージ。
ではないですよね!?

<AAAA>A1
  <BBBB>B1</BBBB>
  <BBBB>B2</BBBB>
</AAAA>
<AAAA>A2
  <BBBB>B3</BBBB>
  <BBBB>B4</BBBB>
</AAAA>
ではないですか?

maru 2008/10/14(火) 19:56:30
で、本題のどうやって
>      A1の子ノードBBBBのB1・B2、A2の子ノードBBBBのB3・B4・・・と取得したいです。
>      ここにどのようなコードを記述すればB1・B2、B3・B4と取得できるのでしょうか?
>      getElementsByTagNameでBBBBを指定して取得できればいいのですが。
ですが、
    IXMLDOMNodePtr GetfirstChild ( );
    IXMLDOMNodePtr GetnextSibling ( );
を使用してA1の子ノードである最初のBBBB、次のBBBBと順番にたどれば良いでしょう。
// 実際のコードは書けない私(^O^)

古いスレッドには追加発言できません。