提问者:小点点

检查TinyXML中是否存在元素


我一直在查找TinyXML的API,但在尝试通过名称获取元素之前,我找不到一种方法来检查元素是否存在。 我在下面评论了我要找的东西:

#include <iostream>
#include "tinyxml.h"

int main()
{
  const char* exampleText = "<test>\
         <field1>Test Me</field1>\
          <field2>And Me</field2>\
         </test>";

  TiXmlDocument exampleDoc;
  exampleDoc.Parse(exampleText);

  // exampleDoc.hasChildElement("field1") { // Which doesn't exist
  std::string result = exampleDoc.FirstChildElement("test")
      ->FirstChildElement("field1")
      ->GetText();
  // }

  std::cout << "The result is: " << result << std::endl;
}

共1个答案

匿名用户

FirstChildElement函数将返回一个指针,这样就可以像这样在if语句中使用指针。

#include <iostream>
#include "tinyxml.h"

int main()
{
  const char* exampleText = "<test>\
         <field1>Test Me</field1>\
          <field2>And Me</field2>\
         </test>";

  TiXmlDocument exampleDoc;
  exampleDoc.Parse(exampleText);

  TiXmlElement* field1 = exampleDoc.FirstChildElement("test")
      ->FirstChildElement("field1");
  if (field1) {
    std::string result = field1->GetText();
    std::cout << "The result is: " << result << std::endl;
  }
}