我在Java中工作,我有这个例子:
http://jsfiddle.net/uAQ94/1/
但是当我想要显示最终的HTML时,我看不到CDATA标记周围的特殊字符。例如:
<![CDATA[à]] not show the à character我需要理解这一点,因为我必须执行以下代码:
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(new StringBufferInputStream(escapedStr));
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.layout();
OutputStream os = response.getOutputStream();
renderer.createPDF(os);
os.close();
} catch (Exception ex) {
ex.printStackTrace();
}来获得一个pdf页面。
为什么CDATA没有显示任何特殊字符?
发布于 2013-04-15 02:43:42
在HTML语言中,CDATA部分只能出现在foreign XML elements内部,而且只能出现在相对较新的浏览器中。
Section 12.1.5说
SVG节只能在外来内容(MathML或
)中使用。
CDATA节也是有问题的,因为没有简单的方法来呈现其值包含字符串"]]>"的CDATA节。
由于这两个原因,大多数HTML呈现器都会将CDATA部分转换为常规的实体转义文本节点。
<p>
<![CDATA[à]]>
<![CDATA[ò]]>
<![CDATA[è]]>+
<![CDATA[ì]]>
</p>这些CDATA节不是外来XML格式。它们位于常规的超文本标记语言<p>元素中,因此是不允许的。
避免这些重音元音的编码问题的最简单方法是使用HTML数字字符引用:
<p> à ò è+ ì </p>应该等同于(归一化后)与原始的。
https://stackoverflow.com/questions/16002854
复制相似问题