TinyXML-2中的“TiXmlNode::FirstChild(const char *)”的替代方案是什么?

What is the alternative to `TiXmlNode::FirstChild(const char *)` in TinyXML-2?

本文关键字:是什么 方案 char TiXmlNode 中的 FirstChild TinyXML-2 const      更新时间:2023-10-16

我正在更新使用传统TinyXml库的代码,以使用新的TinyXml -2版本。

在编辑时,我注意到函数TiXmlNode::FirstChild(const char *)在TinyXML-2中没有直接替换。

我的问题是:

  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())
    {
        // ...
    }
}

tinyxml2 has

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
}