首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML CDATA问题

HTML CDATA问题
EN

Stack Overflow用户
提问于 2013-04-15 02:39:39
回答 1查看 1.2K关注 0票数 1

我在Java中工作,我有这个例子:

http://jsfiddle.net/uAQ94/1/

但是当我想要显示最终的HTML时,我看不到CDATA标记周围的特殊字符。例如:

代码语言:javascript
复制
<![CDATA[à]]  not show the à character

我需要理解这一点,因为我必须执行以下代码:

代码语言:javascript
复制
    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没有显示任何特殊字符?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-15 02:43:42

在HTML语言中,CDATA部分只能出现在foreign XML elements内部,而且只能出现在相对较新的浏览器中。

Section 12.1.5

SVG节只能在外来内容(MathML或

)中使用。

CDATA节也是有问题的,因为没有简单的方法来呈现其值包含字符串"]]>"的CDATA节。

由于这两个原因,大多数HTML呈现器都会将CDATA部分转换为常规的实体转义文本节点。

代码语言:javascript
复制
<p>
  <![CDATA[à]]>
  <![CDATA[ò]]>
  <![CDATA[è]]>+
  <![CDATA[ì]]>
</p>

这些CDATA节不是外来XML格式。它们位于常规的超文本标记语言<p>元素中,因此是不允许的。

避免这些重音元音的编码问题的最简单方法是使用HTML数字字符引用:

代码语言:javascript
复制
<p> &#224; &#242; &#232;+ &#236; </p>

应该等同于(归一化后)与原始的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16002854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档