在XSLT中输出内容带有CDATA的XML节点

Posted zhao1949

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在XSLT中输出内容带有CDATA的XML节点相关的知识,希望对你有一定的参考价值。

http://www.cnblogs.com/jaxu/archive/2013/03/13/2956904.html

**********************************************************

在使用XSLT格式化XML文档时,有时希望输出带有<![CDATA[ ]]>内容的节点,好处是CDATA中的内容不用进行任何转义,可以原样存放在XML文档中而不会存在歧义。但是你不能直接在XSLT中使用CDATA节点来进行输出格式化,原因是XSLT会将其中的内容原样输出,你无法在其中插入任何用于运算和取值的标签,如<xsl:value-of>。

  参考W3schoold中的解释http://www.w3school.com.cn/xsl/el_output.asp,我们可以在<xsl:output>节点中指定内容要作为CDATA部分来输出的节点名称,然后直接在XSLT中使用即可。如:

<xsl:output method="xml" indent="yes" cdata-section-elements="Note"/>

然后直接在文档中引用:

<Note>
  <xsl:value-of select="."/>
</Note>

XSLT会将输出的内容自动放到CDATA节点中。

以上是关于在XSLT中输出内容带有CDATA的XML节点的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XSLT 制作 xml 节点的子节点的精确副本?

使用应用模板在 XSLT 输出中保留   和其他特殊字符

谁用过Xstream 用其生成带有cdata标签的xml解析带有cdata标签的xml

使用 CDATA 元素对 xml 中的 uuid 进行排序的 xslt 模板

XSLT 转换从混合内容中删除 HTML 元素

如何用Dom4j获取CDATA结点内容