java – 创建CDATA部分令人困惑

我试图在描述字段中创建CDATA部分,但失败了.代码非常简单,但在生成XML中没有出现CDATA部分!

Node de = document.createElement("description");
de.appendChild(document.createCDATASection(reportData.getIssue().getDescription() + "more]]>data"));
e.appendChild(de);

在结果XML中,我得到:

<description>Room #1128 has AD issues.more]]&gt;data</description>

我究竟做错了什么?!

解决方法

序列]]>终止CDATA部分,因此不能出现在CDATA部分中.

您的XML库正在通过放弃CDATA部分并使用实体来恢复具有特殊含义的字符来恢复.

由于< foo><![CDATA [Hello,world>]]>< / foo>和< foo> Hello,world& gt;< / foo>等价,这不是问题(除非有人试图用不是XML解析器的工具解析生成的XML,这种方式是疯狂的).

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...