我面对一个奇怪的问题,我将XML数据作为INPUT获取,例如
<D\DATA>
<\DATA_CONTENT="<p>��</p><p>��</p><p>��</p>"/>
<\/DATA>
并尝试使用libxml2解析
xmlReaderForMemory(inputData.c_str(),inputData.length(),NULL,NULL,NULL)
问题是xml解析器可以t process the parsing because of "&"
image string in sample input is "��' 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 "&" but i can
改变输入数据。
数据在Android系统中使用TransformerFactory()并在JAVA上通过DOM解析
但我需要用C / C ++解析它。所以我试着用libxml2解析xml数据,但是......没办法解决这个问题..
请帮助我,并提前致谢
答案 0 :(得分:1)
�
(U + D83D)和�
(U + DE0A)是Unicode surrogates的not allowed in XML的数字字符引用。因此, libxml2 在拒绝此类字符引用时会做正确的事。
您应首先通过组合代理来更改生成此无效XML的代码部分。例如,代理对D83D DE0A
是代码点U+1F60A: SMILING FACE WITH SMILING EYES的UTF-16编码。您的XML生成器应输出😊
或十进制😊
。