複数の DOM ノードをリストで管理する
SFXXMLNode::DOMNodeList クラスを使って、複数の DOM ノードをリストで管理します。
解析対象の XML 文書(file.xml)<fruit> <name>apple</name> <size>XS</size> <color>red</color> </fruit>SFXXMLNode::DOMNodeList からすべての要素を取得するサンプルコード
SFCError error; // エラー値 SFXXMLDOMParser parser; // DOM パーサー 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" resultString = node->GetText(); // 要素のテキストを表示する TRACE("%s",resultString.GetCString()); } }