我正在尝试解析具有Unicode字符的xml,但是当我调用解析函数时,rapidxml给出了异常。
附加代码段。
注意:相同的代码能够解析ascii包含。
bool
ParseXmlData(const std::wstring &XmlData)
{
LPCTSTR thisMethod = L"ParseXmlData()";
wchar_t* wc_xmlstring = wcsdup(XmlData.c_str());
xml_document<wchar_t> xmldoc;
try
{
xmldoc.parse<0>(wc_xmlstring);
}
catch (rapidxml::parse_error &e)
{
std::cout << e.what()
free (dupStr);
return false;
}
-
-
-
-
return true
}
最佳答案
我可以用您的输入来重现您的问题,尽管并非每个朝鲜语字符都可以重现。
事实证明,在解析查找表大小之外的字符时,rapidxml具有bug。
您可以找到完整的修补程序here。我已验证在应用此补丁后该问题已解决。
希望它会有用。