java - 有没有办法强制 JAVA 在 Elements 中打印空的 CDATA?

标签 java xml cdata

我知道这是不合适的,但“另一边”的公司出于某些原因,迫使我们更改此类代码:

<POZ />

进入

<POZ><!CDATA[[]]></POZ>

我找到了 Forcing Empty CDATA Elements但它需要附加一个额外的 XSL 文件,这是我想避免的事情。

我试过微不足道的

Element poz = new Element("POZ");
CDATA cdataContent = new CDATA("");
poz.addContent(cdataContent);

但它 - 当然 - 生成简单

<POZ />

不是我期望的扩展版本...

有没有办法强制 JAVA 在空元素中生成这些 CDATA 部分?

最佳答案

理想情况下,任何 XML 应用程序都不应该关心 CDATA 转义和普通文本之间的区别,或者自终止的空元素和用单独的开始和结束标记表示的元素之间的区别。我强烈建议殴打使用此文档的任何人,让他们放弃此要求。

DOM 不认为空文本节点的概念有意义,无论它是否是 CDATA 部分。我不确定是否有任何其他 XML API 可以让您生成空的 CDATA,但如果答案是否定的,我也不会感到惊讶。

如果您确实需要这样做,我建议您编写一个后处理阶段,该阶段对文件进行简单的字符串替换,以将其强制为您需要的形式。

关于java - 有没有办法强制 JAVA 在 Elements 中打印空的 CDATA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21553731/

相关文章:

java - Android:2.1 应用程序布局与 Honeycomb 3.2 的兼容性

javascript - 如何使用javascript解析xml?

android - 对 strings.xml 文件的更改是否需要编译才能使更改生效?

xml - 我如何拆分 <xsl :foreach> into multiple parts?

java - 分解排列的单词列表

java - 如何在没有插件的情况下使用 Eclipse 设置 Jetty?

perl 文件中的正则表达式 cdata

xslt插入cdata

java - 将非静态方法编写为静态方法

java - 直接从 Java 类和 GSON 生成笨拙的 JSON 数据模型