c++ - 如何使用 tinyxml2 解析空元素?

标签 c++ tinyxml2

使用tinyXml2,我可以解析

<MSG_TIME>2010-07-01 14:28:20</MSG_TIME>
很好,但是
<MSG_TIME></MSG_TIME>
<MSG_TIME/>
当它们是完全有效的 XML(据我所知)时,它们都会在 C++ 中抛出异常。有人对此有解决办法或建议吗?我不控制这个XML的来源,我需要容错。

最佳答案

此答案假设您正在尝试加载具有空元素的有效 XML。

XMLElement::GetText() 如果元素为空则返回 nullptr,因此您可以像这样进行简单检查:

std::string szData;

// Get the element
XMLElement pElement = xmlDoc.FirstChildElement("MyElement");

// Check whether the element contains data & if so, extract it as text
if (pElement->GetText() != nullptr) szData = poElement->GetText();

这个问题实际上指出了 TinyXML2 tutorial 的错误我几个月前写的,所以感谢张贴! :)

关于c++ - 如何使用 tinyxml2 解析空元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14106246/

相关文章:

c++ - 使用 tinyxml-2 在 XML DOM c++ 上更新数据

android - 缺少 sync_val_compare_and_swap_1

c++ - 我可以使用类类型来转换内存区域吗?

c++ - 如何使用 tinyxml2 在节点内创建节点?

c++ - 为什么 TinyXML2 的 XMLDocument::FirstChild() 函数在尝试解析这个有效的 XML 文件时返回 NULL?

c++ - TinyXML2:替换节点功能?

C++ 意外的数组输出

c++ - ISO C++ 标准 - 关于检查依赖库的规则。为什么?

c++ - 火狐基本修改