拿这个XML。
我有办法用XSLT转换CDATA部分的内容吗?
答案 0 :(得分:3)
阅读本文 - CDATA Sections
摘要:在XSLT样式表中, CDATA部分纯粹是一种实用工具 阻止你逃避所有 '<'等你瞄准的目标 因为正在复制你拥有的东西 在您的XML源代码中直接进入您的 HTML输出。 xsl:copy-of元素 正是为此而设计的 目的。 xsl:copy-of会给出一个 您选择的任何内容的精确副本, 包括属性和内容。
XML文档。
<?xml version="1.0" encoding="iso-8859-1"?>
<know>
<title/>
<topic title="" href="">
<![CDATA[
Text
]]>
</p>
</topic>
</know>
xsl Document。
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="know">
<xsl:value-of select="title"/>
<xsl:for-each select="topic">
<xsl:value-of select="@title"/>
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:1)
XSLT将CDATA部分处理为普通文本,因此您可以像处理文本节点一样处理它们。请注意,XSLT不会将CDATA节保留为与周围文本分开。因此,如果你有
<foo>bar <![CDATA[baz]]> qux</foo>
源树将是