2011-10-29 53 views
1
TiXmlElement *pElem;  
std::string StatusResponse; 
pElem = hResponse.FirstChild("StatusResponse").Element(); 

if (pElem) 
    StatusResponse = pElem->GetText(); 

如果pElem是有效的,但該元素不包含文本,pElem->GetText()返回NULL指針,引起異常。我該如何處理?如何處理TinyXML的空指針返回上的getText()

謝謝。

回答

5
if (pElem && pElem->GetText()) 
    StatusResponse = pElem->GetText(); 
+0

如何非常明顯。非常感謝你。 – Smurf64

+3

我會將GetText()的返回值存儲到局部變量,以免兩次調用GetText()。 –

0

我知道回答這個問題爲時已晚,但對於任何面臨此問題的新人來說,這可能是有用的。

我已經嘗試了上面的答案,但它不起作用,因爲它做它應該的,因爲如果我們爲「pElem」獲得NULL,我們不能調用「pElem-> GetText ()」這顯然會導致分段故障,從而

嘗試以下

if(!(pElem==NULL) || !(pElem->GetText()==NULL)) 
{ 
StatusResponse = pElem->GetText(); 
}