需要帮助XSL for DOE(disable-output-escpaing)

时间:2016-12-27 04:40:36

标签: xml xslt

我有这个输入XML,我希望在输出XML中使用&quot;功能将"替换为name。我一直在尝试以下XSL上的各种各样的东西,但没有用 - 某些东西或其他东西在所需的<?xml version="1.0" encoding="UTF-8"?> <book> <name>&quot;test&quot;</name> <type>computer</type> </book> 标签中打破。

输入XML:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="book">
        <book>
            <xsl:apply-templates />
        </book>
    </xsl:template>
    <xsl:template match="name">
        <name>
            <xsl:text disable-output-escaping="yes">
                <![CDATA[&quot;test&quot;]]>
            </xsl:text>
        </name>
    </xsl:template>
    <xsl:template match="type">
        <genre>
            <xsl:apply-templates />
        </genre>
    </xsl:template>
</xsl:stylesheet>

转换XSL:

<?xml version="1.0" encoding="UTF-8"?>
<book>
    <name>"test"</name>
    <genre>computer</genre>
</book>

所需的输出XML:

<?xml version="1.0" encoding="UTF-8"?><book>
    <name>
                &quot;test&quot;
            </name>
    <genre>computer</genre>
</book>

输出我正在获取的XML:

apm star <packagename>

任何人都可以提供一些有关如何完成此操作的见解吗?

我一直在寻找各种来源,但没有用来解决这个问题!

1 个答案:

答案 0 :(得分:1)

通过将文本放在样式表中的CDATA中,可以强制对其进行字面处理。如果它不在CDATA中,它会以您想要的方式工作。没有理由将它放在样式表的CDATA部分中。