在XSL

时间:2017-08-02 16:02:56

标签: xslt-1.0

我想输出一个内部有cdata信息的节点,如何实现它?

我有

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" encoding="UTF-8" cdata-section-elements="conditionExpression" method="xml"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
            <conditionExpression><![CDATA[($V{REPORT_COUNT}%2) == 0]]></conditionExpression>
</xsl:template>
</xsl:stylesheet>

我想要

<?xml version='1.0' encoding='UTF-8' ?>
<conditionExpression><![CDATA[($V{REPORT_COUNT}%2) == 0]]></conditionExpression>

我得到了

<?xml version='1.0' encoding='UTF-8' ?>
<conditionExpression>($V{REPORT_COUNT}%2) == 0</conditionExpression>

如何解决?

1 个答案:

答案 0 :(得分:2)

我也无法重现你的问题。

在任何情况下,生成所需输出的正确方法是:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" encoding="UTF-8" cdata-section-elements="conditionExpression" method="xml"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/">
    <conditionExpression>($V{REPORT_COUNT}%2) == 0</conditionExpression>
</xsl:template>

</xsl:stylesheet>

在您告诉处理器为您执行此操作后,没有理由添加您自己的CDATA标记。