保留<! - [CDATA [使用xslt转换xml时 - >

时间:2013-07-08 11:40:48

标签: xml xslt xslt-2.0 cdata

我正在使用xslt 2.0进行转换。我想改变波纹管线。

<ResultInfo><![CDATA[Concurrent processing error! <> & Test.]]></ResultInfo>

我正在使用波纹管转换逻辑,

<xsl:template match="ResultInfo">
     <xsl:element name="ltc:{local-name()}">
          <xsl:value-of select="normalize-space(.)"/>
     </xsl:element>
</xsl:template>

当我运行这个逻辑时,我得到波纹管输出,

<ltc:ResultInfo>Concurrent processing error! <> & Test.</ltc:ResultInfo>

但我想转移“CDATA”。请建议我如何保存“CDATA”。

1 个答案:

答案 0 :(得分:1)

您无法“保留”CDATA,无论何时在输入中使用CDATA进行输出,您都可以在输出某些元素的文本节点子元素时请求序列化程序使用CDATA部分:

<xsl:output method="xml" cdata-section-elements="ltc:ResultInfo" />

这将使用CDATA序列化所有 ltc:ResultInfo元素作为其文本内容,无论输入是使用CDATA还是纯文本。