使用XML1.1解析unicode字符(0x2)

She*_*bey 7 xml-parsing

在我的Java应用程序中,我需要解析包含0x2CDATA内部控制字符的XML文档.

我尝试了几种方法,但是通过了.我想避免任何类型的编码.

XML1.1有什么办法吗?

bob*_*nce 11

我需要在CDATA中解析包含控制字符0x2的xml

那不是XML.任何地方的原始控制字符U + 0002意味着它没有格式良好,因此不是XML文档.

仅在XML 1.1中,可以包括编码为字符引用的控制字符.所以,你可能已经尝试做一个字符串替换为解决它\x02解析之前.但是,您不能将字符引用放在CDATA部分中,因此也不会飞行.

编辑:你可以在短期内修复它,如果你绝对确定每个杂散的U + 0002字符在CDATA部分内,通过将每个替换为:

]]>&#2;<![CDATA[
Run Code Online (Sandbox Code Playgroud)

然而,这是超级shonky.无论何时生成错误的XML都需要修复.开始负责创建它的人!

  • +1用于踢出产生无效XML的人. (6认同)

Tom*_*lak 3

XML 不能包含 ASCII 控制字符(TAB、CR 和 LF 除外),即使在 CDATA 部分内也是如此。XML 规范不允许它们。

将二进制数据编码为 Base64 字符串并将其写入 XML。在这种情况下不需要 CDATA。