【问题标题】:Preserve <![CDATA[ when transform the xml using xslt使用 xslt 转换 xml 时保留 <![CDATA[
【发布时间】:2013-07-08 11:40:47
【问题描述】:

我正在使用 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”。

【问题讨论】:

    标签: xml xslt xslt-2.0 cdata


    【解决方案1】:

    您不能“保留” CDATA,即在输入中使用 CDATA 进行输出时,但您可以要求序列化程序在输出某些元素的文本节点子节点时使用 CDATA 部分:

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 2012-11-23
      • 2013-03-19
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 2017-10-03
      相关资源
      最近更新 更多