如何将XML十六进制实体解码为XSLT中的相应字符?

时间:2013-09-13 11:34:37

标签: xslt svg fonts hex xslt-1.0

上下文

我正在使用Apache Batik处理字体文件,并使用ttf2svg command将字体转换为SVG文件。但是,Batik XML给出的输出编码了最初的-Chinese-字形。

当前XML

<glyph unicode="&#xf900;" glyph-name="null" horiz-adv-x="256" d="…" />

目标XML

<glyph unicode="豈" glyph-name="null" horiz-adv-x="256" d="…"/>

XSL模板

<xsl:template match="svg:glyph" mode="from-block">    
  <xsl:copy-of select="."  disable-output-escaping="yes" />
  <xsl:apply-templates />
</xsl:template>

问题

如何将XML十六进制实体解码为 XSLT 1.0 中的相应字符?

1 个答案:

答案 0 :(得分:0)

XSLT 2.0解决方案

Michael Kay's answer on xslt: converting characters to their hexadecimal Unicode representation给出了hex→char问题解决方案的一些提示: