TinyXML解析XML格式的字符串返回NULL?

标签 tinyxml

我正在尝试使用 TinyXML 来解析 XML 格式的字符串。但返回指针始终为 NULL。我不确定代码的哪一部分设置错误。

TiXmlDocument docTemp;
const string strData = "<?xml version=\"1.0\" ?><Hello>World</Hello>";
const char* pTest = docTemp.Parse(strData.c_str(), 0 , TIXML_ENCODING_UTF8);
if(pTest == NULL){
    cout << "pTest is NULL" << endl;
}

它总是显示'pTest is NULL' 有什么想法吗?

非常感谢!

最佳答案

它应该在出错的情况下返回 0 但看起来 TiXmlBase::SkipWhiteSpace 中存在错误,如果右括号后没有字符则返回 0,但如果有空格或\r 或\n 它返回指针。因此,您有 2 个选项在右括号后添加一些白色字符或在 SkipWhiteSpace 的开头修改以下行:

if ( !p || !*p )
{
    return 0;
}

类似于:

if ( !p )
{
   return 0;
}
if (!*p)
{
   return p;
}

关于TinyXML解析XML格式的字符串返回NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145686/

相关文章:

c++ - 从变量而不是文件加载 XML

c++ - 使用 TinyXML 查找特定文本值

c++ - 使用 TinyXML 获取标签之间的内容

c++ - mainwindow.o和***.o文件中的QT重复符号

c - TinyXML 和保留 HTML 实体

c++ - TinyXml如何序列化

c++ - 插入元素 (TinyXml)

c++ - TinyXML 和获取值

c++ - Tinyxml - 针对 x64 平台时出现链接错误

c++ - tinyxml2 相当于 TiXmlNode 枚举?