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

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

pElemが有効であるが、要素にテキストが含まれていない場合は、pElem->GetText()例外を発生させ、NULLポインタを返します。私はこれをどのように扱うべきですか?はGetTextは上で返さ()

ありがとうございました。

答えて

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

どのように痛いほど明白下にしてみてください。どうもありがとうございました。 – Smurf64

+3

GetText()を2回呼び出さないように、GetText()の戻り値をローカル変数に格納します。 –

0

私はこの質問に答えるには遅すぎることは知っていますが、この問題に直面している新しい人にとっては有用かもしれません。

私は上記の答えを試してみましたが、うまくいきません。なぜなら、私たちは "pElem"をNULLにすると "pElem-> GetText ()」これは明らかにそうフォルトをセグメンテーションにつながる

if(!(pElem==NULL) || !(pElem->GetText()==NULL)) 
{ 
StatusResponse = pElem->GetText(); 
} 
関連する問題