c++ - 使用 Tinyxml 检查 XML 节点是否存在

标签 c++ xml tinyxml

我正在使用 tinyXml 在 C++ 中解析 XML 文件。谁能告诉我如何检查节点(父节点/子节点/下一个兄弟节点)是否存在。以下是我正在处理的 xml 文件中存在的唯一节点。

TiXmlElement* Instrmt = TrdCaptRpt->FirstChildElement();
TiXmlElement* Undly = Instrmt->NextSiblingElement();
TiXmlElement* Amt = Undly->NextSiblingElement();
TiXmlElement* RptSide = Amt->NextSiblingElement();
TiXmlElement* Pty = RptSide->FirstChildElement();

如果上述任何节点在序列中丢失,则程序会因段错误而中止。

谁能帮忙。

谢谢

最佳答案

您可以使用 TiXmlNode 类的 const TiXmlNode* TiXmlNode::FirstChild ( const char * value ) const 函数并检查生成的 TiXmlNode* 是否为 NULL

TiXmlNode* child = mynode->FirstChild();

if (child != NULL)
{
  //A child exists....
}

对于 Parent 你有一个类似的功能。您可以找到文档 here .

希望对您有所帮助。

关于c++ - 使用 Tinyxml 检查 XML 节点是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5592689/

相关文章:

c++ - 在 std::map 中使用 TiXmlElement vector

c++ - 通常在 C++ 中使用 const 指令,特别是在 Tiny XML 库中 :

c++ - 在字节流而不是文件上使用 TinyXML

c++ - 为什么编译器默认不自动添加或生成包含保护?

java - XMLunit 比较失败,因为子节点顺序

xml - Xpath:复杂表达式,包含一些节点,而排除其他节点

xml - 使用 XML::Twig,有没有办法找到具有特定属性的 'first_child'?

c++ - 巴特沃斯 N 阶滤波器设计

python - 链接 Boost.python 示例的问题

c++ - 用于识别模板类中的类的元函数出现问题