ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

すべての子ノードを取得する

SFXXMLNode::GetChildNodes メソッドを使用して、すべての子ノードを取得します。

// タグ名が "BOOK" である、すべての Element ノードを取得する
SFXXMLNode::DOMNodeListPtr list = root->GetElementsByTagName("BOOK");

 if (list) {
    // 列挙子を取得する
    SFXXMLNode::DOMNodeList::Enumerator enumer = list->GetFirstEnumerator();

    while (enumer.HasNext()) {
        // 各  Element ノードを取得する
        SFXXMLElementPtr elem = static_cast(enumer.GetNext());
        //  Element ノードのすべての子ノードを取得する
        SFXXMLNode::DOMNodeListPtr nodeList = elem->GetChildNodes();
        // 子要素の列挙子を取得する
        SFXXMLNode::DOMNodeList::Enumerator childiter = 
                                               nodeList->GetFirstEnumerator();

        while (childiter.HasNext()) {
            SFXXMLElementPtr child = static_cast(childiter.GetNext());

      // 子ノードの名前を表示する
            TRACE("child name: %s", child->GetName());    
             // 子ノードの内容を表示する
            TRACE("child text: %s", child->GetText().GetCString()); 
        }
    }
}