c++ - RapidXml 无法解析包含 unicode 的 xml

标签 c++ xml windows unicode rapidxml

我正在尝试解析具有 Unicode 字符的 xml,但是当我调用解析函数时 rapidxml 给出了异常。

附上代码片段。

注意:同样的代码可以解析ascii containt。

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 .我已确认应用此补丁后问题已解决。
希望它有用。

关于c++ - RapidXml 无法解析包含 unicode 的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47468065/

相关文章:

xml - XSLT - 删除所有属性

c++ - 文件关闭通知

c++ - Qt,从 qApp->processEvents() 中排除事件

c++ - 虚拟类多重继承

c++ - C-Style Cast 内存力

python - 附加具有打开和关闭标记 Python 的 XML 标记和属性

xml - 我需要有关在 T-SQL 中解析 XML 的帮助

windows - Ansible win_shell 临时语法

java - 用于启动 Java 程序的 .bat 框架

Python 导入在 Windows 中失败,但在 Linux 中不会