0

従来の TinyXmlライブラリを使用するコードを更新して、代わりに新しい TinyXML-2バージョンを使用します。

編集中に、この関数がTinyXML-2TiXmlNode::FirstChild(const char *)に直接置き換わっていないことに気付きました。

私の質問は次のとおりです。

  1. 私が見逃した前述の機能の便利な代替品はありますか?
  2. 存在しない場合、TinyXML-2 用に以下のサンプル コードをどのように更新する必要がありますか?
// 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())
    {
        // ...
    }
}
4

1 に答える 1

1

tinyxml2 は

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

あなたのコードブロックはほとんど同じです:

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

または、あなたのスニペットが次のようになるtinyxml2 の私のアドオンを見るかもしれません:

for (auto walk : selection (element, "example/")
{
   // walk the walk
}
于 2016-11-08T23:22:55.920 に答える