2016-10-28 6 views
0

legacy TinyXmlライブラリを使用するコードを更新していますが、代わりにnew TinyXML-2バージョンを使用しています。TinyXML-2の `TiXmlNode :: FirstChild(const char *)`に代わるものは何ですか?

編集中に、TiXmlNode::FirstChild(const char *)の機能がTinyXML-2に直接置き換えられていないことに気付きました。

私の質問は以下のとおりです。私は逃した前述の機能のための便利な交換が

  1. ありますか?
  2. TinyXML-2用に以下のサンプルコードをどのように更新するべきですか?

    if (auto example = element -> FirstChildElement ("example") 
    { 
        for (auto walk = example -> FirstChildElement(); 
         walk; 
         walk -> NextSiblingElement()) 
        { 
        // walk the walk 
        } 
    } 
    

    それとも、my add-on for tinyxml2に見えるかもしれませんが、これであなたのスニペットは次のようになります:

// TiXmlElement *element; // assume this was correctly loaded 
TiXmlNode *node; 

if ((node = element->FirstChild("example")) != nullptr) 
{ 
    for (TiXmlElement *walk = node->FirstChildElement(); 
     walk != nullptr; 
     walk = walk->NextSiblingElement()) 
    { 
     // ... 
    } 
} 

答えて

1

tinyxml2は

const XMLElement * XMLNode::FirstChildElement (const char *value=0) const

はあなたのコードブロックがほぼ同じである持っている

for (auto walk : selection (element, "example/") 
{ 
    // walk the walk 
} 
関連する問題