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

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

DOM パーサーを使って XML 文書を解析する

SFXXMLDOMParser::Parse を使って、XML 文書を読み込み、解析します。

解析する文書( file.xml )
<fruit>
  <name>apple</name>
  <size>XS</size>
  <color>red</color>
</fruit>
要素の取得するサンプルコード
SFXXMLDOMParser parser;     // DOM パーサ
SFCError error;             // エラー値
SFXAnsiString resultString; // 結果を格納する文字列

// file.xml に保存した XML 文書を解析する
if ((error = parser.Parse("/file.xml")) == SFERR_NO_ERROR) {
    // ルート要素を取得する
    SFXXMLDocumentPtr root = parser.GetDocument(); 
   // ルート要素の最初の子要素 ( "fruit" 要素 ) を取得する
    SFXXMLNodePtr child = root->GetFirstChild();   

    // "fruit" 要素のすべての子要素を取得する
    // SFXXMLNode::DOMNodeListPtr は SFXList と同じ
    SFXXMLNode::DOMNodeListPtr nodeList = child->GetChildNodes();

    // イテレータを取得する
    SFXXMLNode::DOMNodeList::Iterator itor = nodeList->GetIterator();

    while (itor.HasNext()) { // 次の要素があるかぎり繰り返す

        // "name"要素、"size"要素、"color" 要素の順に取得できる
        SFXXMLNodePtr node = itor.GetNext();

        // 要素の名前を取得する
        resultString = node->GetNodeName();

        // 要素のテキストを取得する 
        // ( "name" の場合は "apple"、"size" の場合は "XS" 、
        // "color"の場合は"red")
        resultString = node->GetText();
    }
}