我正在使用PugiXML解析字符串以检查它是否为有效XML。第一个字符串数据是我要查找的好结果,其他两个字符串应该是坏结果,但是最后一个字符串返回status_ok,尽管默认情况下选项parse_fragment是关闭的,并且我还在使用选项parsing_minimal,没有元素节点的文本仍然有效。我在做错什么吗?
bool ValidateSourceData(const string data)
{
pugi::xml_document doc;
pugi::xml_parse_result result =
doc.load_buffer(data.c_str(), data.size(), pugi::parse_minimal);
if (!result)
{
cerr << "Data [" << data << "] parsed with errors." << endl;
cerr << "Description: "<< result.description() << endl;
cerr << "Offset: " << result.offset << endl;
return false;
}
cout << "Data [" << data << "] parsed without errors." << endl;
return true;
}
int main()
{
string data;
data = "<node>good data</node>";
if(ValidateSourceData(data))//parsed without errors
{
//DoSomething(data);
}
data = "bad data";
if(ValidateSourceData(data))//parsed with errors
{
//DoSomething(data);
}
data = "bad<node>data</node>";
if(ValidateSourceData(data))//parsed without errors
{
//DoSomething(data);
}
return 0;
}