Какая альтернатива `TiXmlNode::FirstChild(const char *)` в TinyXML-2?
Я обновляю код, который использует устаревшую библиотеку TinyXml, чтобы использовать вместо нее новую версию TinyXML-2.
Во время редактирования я заметил, что функцияTiXmlNode::FirstChild(const char *)
не имеет прямой замены в TinyXML-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())
{
// ...
}
}
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
}