我正在尝试使用 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/