2009-08-26 132 views

回答

1

XSLT将CDATA节作为普通文本处理,因此您可以像处理文本节点一样对待它们。请注意,XSLT不会将CDATA部分保留为与周围文本分开。因此,如果你有

<foo>bar <![CDATA[baz]]> qux</foo> 

源树将

  • 文件
    • 元素:FOO
      • 文字: “栏巴兹qux”
2

阅读这篇文章 - 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>