我有这个输入XML,在这个输入XML中,我想使用disable-output-escaping特性来代替",而不是在输出"中使用"。我在下面的XSL上尝试了各种各样的东西,但是没有用--一些东西正在破坏所需的name标记。
输入XML:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<name>"test"</name>
<type>computer</type>
</book>变换XSL:
<?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["test"]]>
</xsl:text>
</name>
</xsl:template>
<xsl:template match="type">
<genre>
<xsl:apply-templates />
</genre>
</xsl:template>
</xsl:stylesheet>所需的输出XML:
<?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>
"test"
</name>
<genre>computer</genre>
</book>有人能提供一些关于如何做到这一点的见解吗?
我一直在寻找各种来源,但没有用来修复这个!
发布于 2016-12-27 05:38:10
通过将文本放入样式表中的CDATA中,您将强制对其进行字面处理。如果不是在CDATA中,它的工作方式是你想要的。没有理由让它出现在样式表的CDATA部分中。
https://stackoverflow.com/questions/41339079
复制相似问题