C ++でRapidXMLを使用してXMLファイルを解析しようとしています。ファイルは次のようになります:
<root>
<a>
<b>1111</b>
<c>
<d1>2222</d1>
<d2>3333</d2>
</c>
</a>
</root>
私が行っている親ノードを識別するには:
if (currentNode->first_node() != 0) { // this node has children, search for them }
最初の2つのノード(ルートとa)に対しては正常に機能しますが、ノード'b'に対してこれを行うと、0ではなくどこかへのポインターが返されますが、'b'には子ノードがありません。0を返すべきではありませんか?RapidXMLのドキュメントには次のように書かれています。
function xml_node::first_node概要
xml_node<Ch>* first_node(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const;
説明 最初の子ノードを取得します。オプションでノード名と一致します。
パラメータname 検索する子の名前。名前に関係なく、最初の子を返す場合は0。name_sizeがゼロ以外の場合、この文字列はゼロで終了する必要はありません
name_size 名前のサイズ(文字数)、または文字列からサイズを自動的に計算する場合は0
case_sensitive 名前の比較では大文字と小文字を区別する必要があります。大文字と小文字を区別しない比較は、ASCII文字に対してのみ適切に機能します
見つかった子へのポインタを返します 。見つからない場合は0を返します。
なぜこれが起こっているのか、私が間違っているのか、何か考えはありますか?
ありがとう