0
我使用我的XML以下XSLT排序XSLT排序轉換CDATA爲普通XML文本
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" omit-xml-declaration="no" encoding="UTF-8" indent="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[*]">
<xsl:copy>
<xsl:apply-templates>
<xsl:sort select="local-name()"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="Handling|Handling//*" priority="2">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:transform>
這裏的問題是,在我的生成的XML所有字符數據轉換爲普通文本,這是很難對於我的SAX解析器來說,因爲數據有很多特殊字符和HTML標籤。有沒有辦法可以避免將CDATA轉換爲文本?
例如:
<description><![CDATA[Never program while driving.<p>]]></description>
轉化爲
<description>Never program while driving.<p></description>
好介紹的標籤之一。我有多個CDATA標籤,我希望所有這些標籤都可以保留。任何方式我可以做到這一點? – BrownTownCoder
@BrownTownCoder是,這些元素的「空格分隔列表」作爲'xsl:output'元素的'cdata-section-elements'屬性的值。我只是重複了馬丁所說的話。 –
使用純粹的XSLT,編寫樣式表時需要知道這些元素的名稱,並將它們全部列入'xsl:output'中。 –