在我的 Java 应用程序中,我需要解析包含0x2
CDATA 中的控制字符的 XML 文档。
我尝试了几种方法,但无法通过。我想避免任何形式的编码。
XML1.1有什么办法吗?
在我的 Java 应用程序中,我需要解析包含0x2
CDATA 中的控制字符的 XML 文档。
我尝试了几种方法,但无法通过。我想避免任何形式的编码。
XML1.1有什么办法吗?
我需要在 CDATA 中解析包含控制字符 0x2 的 xml
那不是XML。任何地方的原始控制字符 U+0002 意味着它的格式不正确,因此不是 XML 文档。
仅在 XML 1.1 中,可以包含编码为字符引用的控制字符。因此,您可能已尝试通过在解析之前进行字符串\x02
替换来修复它。
但是,您不能将字符引用放在 CDATA 部分中,所以这也行不通。
编辑:如果您绝对确定每个杂散的 U+0002 字符都在 CDATA 部分内,则可以在短期内修复它,方法是将每个字符替换为:
]]><![CDATA[
然而,这是超级shonky。首先需要修复生成错误 XML 的任何内容。去踢负责创建它的人!
XML cannt contain ASCII control characters (apart from TAB, CR and LF), not even inside a CDATA section. They are disallowed by the XML spec.
Encode binary data into Base64 strings and write them to XML. No need for CDATA in this case.