我在使用xsl处理xml并输出另一个xml时遇到问题。
我的输入包含十六进制的实体,例如:&
当我使用saxon处理这个xml时,我需要像输入一样保持这个实体。
我已经尝试过字符映射或更改de编码,但它总是在&
或字符&中转换此实体。
任何人都知道如何解决这个问题?
这是一个xml示例:
<data><name>Pilot & Co-pilot Seat</name></data>
这是一个xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:template match="//name">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
我们找到了解决方案,
使用xsl:character-map
但我们必须在字符串参数中添加实体&amp; amp之前的字符串参数,如下所示:
<xsl:character-map name="isolat1">
<xsl:output-character character="/" string="&#x0002F;"/>
</xsl:character-map>
并且转换按预期工作。