问题描述
|
的XML是这样的:
< cell i=\'0\' j=\'0\' vi=\'0\' parity=\'Odd\' subType=\'-1\'> & #34;String& #39;</cell>
但是在解释了xsl之后,输出是这样的:
< td nowrap=\"true\" class=\"gridCell\" i=\"0\" j=\"0\">\"String\'< /td>
我想保留&#34;和&#39;。我已经尝试过字符映射,但是它不起作用。代码是这样的:
< xsl:character-map name=\"raquo.ent\">
<xsl:output-character character=\"\'\" string=\"&apos;\"/>
<xsl:output-character character=\"'\" string=\"&apos;\"/>
< /xsl:character-map>
< xsl:output method=\"xml\" version=\"1.0\" encoding=\"UTF-8\" indent=\"yes\" use-character-maps=\"raquo.ent\"/>
有人可以帮忙吗?非常感谢你!
解决方法
此转换:
<xsl:stylesheet version=\"2.0\"
xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"
xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">
<xsl:output omit-xml-declaration=\"yes\" indent=\"yes\"
use-character-maps=\"raquo.ent\"/>
<xsl:character-map name=\"raquo.ent\">
<xsl:output-character character=\""\" string=\'&#34;\'/>
<xsl:output-character character=\"'\" string=\'&#39;\'/>
</xsl:character-map>
<xsl:template match=\"node()|@*\">
<xsl:copy>
<xsl:apply-templates select=\"node()|@*\"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
当应用于提供的XML文档时:
<cell i=\'0\' j=\'0\' vi=\'0\' parity=\'Odd\' subType=\'-1\'>"String'</cell>
产生想要的正确结果:
<cell i=\"0\" j=\"0\" vi=\"0\" parity=\"Odd\" subType=\"-1\">"String'</cell>