我一直在尝试使用 XStreamMarshaller 在我的 Java Spring 项目中生成 XML 输出。我生成的 XML 在元素文本中有 CDATA 值。我在命令对象中手动创建这个 CDATA 文本,如下所示:
f.setText("<![CDATA[cdata-text]]>");
XStreamMarshaller 生成的元素(下面的文本数据是别名)为:
<text-data><![CDATA[cdata-text]]></text-data>
上面的 XML 显示符合预期(请忽略上面元素名称中的反斜杠:论坛格式)。但是,当我对生成的 XML 输出执行查看源代码时,我看到了元素:<text-data><![CDATA[cdata-text]]></text-data>
.
问题:
如您所见,小于和大于字符已被替换为<
和>
查看源代码。我需要我的客户读取源代码并从 XML 输出中识别 CDATA 部分,这在上述场景中不会。
有没有办法让 XStreamMarshaller 转义我提供的文本中的特殊字符?
我已将 Marshaller 的编码设置为 ISO-8859-1,但这也不起作用。如果 XStreamMarshaller 无法完成上述操作,您能否建议可以为我执行此操作的备用编组器/解组器?
// 按照下面 Paŭlo Ebermann 的建议显示我的 XML 和查看源代码:
XML 视图(在 IE 中显示):
An invalid character was found in text content. Error processing resource 'http://localhost:8080/file-service-framework/fil...
Los t
查看源代码:
<service id="file-text"><text-data><![CDATA[
Los túneles a través de las montañas hacen más fácil viajar por carretera.
]]></text-data></service>
非常感谢你。