如何使用 XML 解析器解析 &#DDDDD;&#DDDDD; (Unicode 图像)



我面临一个奇怪的问题,我以输入形式获取XML数据,例如

<DDATA>
<DATA_CONTENT="&lt;p&gt;&#55357;&#56842;&lt;/p&gt;&lt;p&gt;&#55357;&#56832;&lt;/p&gt;&lt;p&gt;&#55357;&#56865;&lt;/p&gt;"/>
</DATA>

并尝试使用 libxml2 进行解析

xmlReaderForMemory(inputData.c_str(),inputData.length(),NULL,NULL,NULL)

问题是XML解析器t process the parsing because of "&" image string in sample input is "&#55357;&#56865;' is UTF-8 encoded UNICODE or HTML data so data is correct, but problem is "&" is not possible in XML Data. it shoulde be changed as "&amp;" but i can可以不更改输入数据。

数据是在Android系统中使用TransformerFactory()制作的,并且能够通过JAVA上的DOM进行解析

但我需要在 C/C++ 中解析它。 所以我尝试使用 libxml2 解析 XML 数据,但是......没有办法解决这个问题..

请帮助我,提前感谢

&#55357; (U+D83D) 和 &#56842; (U+DE0A) 是 Unicode 代理项的数字字符引用,在 XML 中是不允许的。因此,libxml2 在拒绝此类字符引用时会做正确的事情。

应通过首先组合代理项来更改生成此无效 XML 的代码部分。例如,代理项对D83D DE0A是代码点 U+1F60A 的 UTF-16 编码:笑脸与笑眼睛。XML 生成器应输出&#x1F60A;或十进制&#128522;

最新更新