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

时间:2011-04-08 08:49:11

标签: 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();

如果序列中缺少上述任何节点,则程序将以分段错误中止。

有人可以帮忙。

由于

2 个答案:

答案 0 :(得分:1)

您可以使用const TiXmlNode* TiXmlNode::FirstChild ( const char * value ) const课程的TiXmlNode功能,检查结果TiXmlNode*是否为NULL

TiXmlNode* child = mynode->FirstChild();

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

对于Parent,您有类似的功能。您可以找到文档here

我希望这会有所帮助。

答案 1 :(得分:1)

TiXml提供了TiXMlHandle类来处理NULL的检查,所以它应该解决segmentaiton的错误。您仍然需要检查链末端是否存在节点。