-1

我需要解析一个看起来像这样的 XML 文件

1.<?xml version="1.0" encoding="UTF-8"?>
2.<Root>
3.<Record>
4.<in><![CDATA[<?xml version="1.0" encoding="UTF-8"?><XML><Attribute AttrID="A">Test</Attribute>-<Attribute AttrID="B"> <![CDATA[Aap Noot Mies]]> </Attribute>]]></XML></in>
5.<out><![CDATA[]]></out>
6.</Record>
7.</Root>

解析第 4 行时出现错误是否有任何方法可以在 xml 文档的 CDATA 部分中转义 CDATA 结束标记 ( ]]> )。

4

1 回答 1

3

您的输入格式不正确有几个错误我认为您需要修复生成的任何内容以生成更像

<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Record>
<in><![CDATA[<?xml version="1.0" encoding="UTF-8"?><!-- - --><XML><Attribute AttrID="A">Test</Attribute>-<Attribute AttrID="B"> <![CDATA[Aap Noot Mies]]<![CDATA[> </Attribute></XML>]]></in>
<out><![CDATA[]]></out>
</Record>
</Root>

请注意,外部 CDATA 不需要<![CDATA[<!CDATA[一次使用]]>需要引用(例如,通过停止和启动外部 CDATA 部分,如此处)。外部]]>需要在之后移动,</XML>以便引用元素的结尾和开头。

这使得文件在技术上格式良好,尽管具有名称XML(或通常以xml大写或小写开头)的元素被 W3C保留用于 XML 相关规范,并且不应在用户 XML 文件中使用,除非它是特定元素或属性(如xmlnsW3C 定义的)

此外,我在 XML 声明之后的破折号周围添加了一个(引用的)注释,就好像该 CDATA 部分已被提取并制作成一个 XML 文档,它会使生成的文档格式不正确,因为之前只允许空格或注释和 PI第一个元素。

于 2013-01-16T16:25:17.303 回答