TinyXML 的 TiXmlElement::GetText() 有可能返回 NULL

参考:http://stackoverflow.com/questions/7942191/how-to-handle-tinyxml-null-pointer-returned-on-gettext


在XML某个节点的text为空的情况下,TinyXML 的 TiXmlElement::GetText() 会返回 NULL。

这时,需要先保存 GetText() 的返回值,然后判断它是否为空,如果不为空,才真正使用。例如:

TiXmlElement *pElem;    
std::string StatusResponse;
pElem = hResponse.FirstChild("StatusResponse").Element();

if (pElem) {
    const char * text = pElem->GetText();
	if (text) {
		StatusResponse = text;
	}
}


【注意】

  • 即使像下面这样的节点,它的 text 全部是空白字符,TiXmlElement::GetText() 也会返回 NULL

<code>      </code>

  • 正常 XML 格式,即非 CDATA 格式的节点的 text 如果前后有空白字符,TiXmlElement::GetText() 返回的字符串去掉首尾的空白字符
  • CDATA 格式的节点的 text 如果前后有空白字符,TiXmlElement::GetText() 返回的字符串不会去掉首尾的空白字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值