有没有办法用XSL模板转换XML文档的cdata部分?
答
XSLT将CDATA节作为普通文本处理,因此您可以像处理文本节点一样对待它们。请注意,XSLT不会将CDATA部分保留为与周围文本分开。因此,如果你有
<foo>bar <![CDATA[baz]]> qux</foo>
源树将
- 文件
- 元素:FOO
- 文字: “栏巴兹qux”
- 元素:FOO
答
阅读这篇文章 - 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>