跳过]]>在xml版本1.1的CDATA部分中

时间:2012-07-27 05:04:24

标签: java xml parsing xml-parsing cdata

我正在使用CDATA部分,但文本由一些字符组成,因此它正在关闭,我正在解析异常。

<xyz><![CDATA[\..\..\\..\..\\..\..\\..\..\\..\..\\\boot.ini]]>&#0;</xyz>

我从某个网站找到了以下代码:

// Add a CDATA section to the root element
Element element = doc.getDocumentElement();
CDATASection cdata = doc.createCDATASection("data");
element.appendChild(cdata);

// If "]]>" appears in the text, two CDATA sections will be written out
cdata = doc.createCDATASection("more]]>data");
element.appendChild(cdata);

使用上述逻辑的问题是我不知道我从DB读取的元素将包含“]]&gt;”所以我可以写两个CDATA部分。

需要你的帮助。

1 个答案:

答案 0 :(得分:0)

使用CDATA部分转义任意文本很容易出错,因为它们无法嵌套。

使用entity references来转义文本。

但是,如果你真的想使用CDATA部分,维基百科页面的this section可能会有所帮助。