2011-04-08 61 views
0

我正在使用tinyXml解析C++中的XML文件。任何人都可以告訴我如何檢查節點(父/子/下一個兄弟)是否存在。以下是我正在處理的xml文件中存在的唯一節點。檢查XML節點是否存在,使用Tinyxml

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

如果上述任何節點在序列中缺失,則程序會因分段錯誤而中止。

任何人都可以請幫忙。

感謝

+1

對於每個指針,在使用它之前總是檢查它是否爲NULL。它將解決您的崩潰問題。 – ygao 2011-04-08 09:13:09

回答

1

可以使用TiXmlNode類的const TiXmlNode* TiXmlNode::FirstChild ( const char * value ) const功能,並檢查所產生的TiXmlNode*NULL與否。

TiXmlNode* child = mynode->FirstChild(); 

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

對於Parent,您有類似的功能。你可以找到文件here

我希望這會有所幫助。

1

TiXml提供TiXMlHandle類來負責檢查NULL,因此它應該整理分段故障。您仍然需要檢查鏈條末端是否存在節點。