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 回答