Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将XML十六进制实体解码为XSLT中的对应字符? 上下文_Xslt_Svg_Fonts_Hex_Xslt 1.0 - Fatal编程技术网

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

如何将XML十六进制实体解码为XSLT中的对应字符? 上下文,xslt,svg,fonts,hex,xslt-1.0,Xslt,Svg,Fonts,Hex,Xslt 1.0,我正在使用处理字体文件,并使用将字体转换为SVG文件。然而,Batik XML给出的输出编码了最初的中文字形 当前XML 目标XML XSL模板 问题: 如何在XSLT 1.0中将XML十六进制实体解码为相应的字符?XSLT 2.0解决方案 对十六进制的解给出了一些提示→字符问题: :从字符串创建Unicode代码点序列 :从Unicode代码点序列创建字符串 您能更好地解释需求的性质吗?是否有声称接受XML输入但无法处理数字字符引用的下游进程?或者这只是一个表面要求:您希望XML

我正在使用处理字体文件,并使用将字体转换为SVG文件。然而,Batik XML给出的输出编码了最初的中文字形

当前XML

目标XML

XSL模板

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

XSLT 2.0解决方案 对十六进制的解给出了一些提示→字符问题:

  • :从字符串创建Unicode代码点序列
  • :从Unicode代码点序列创建字符串

您能更好地解释需求的性质吗?是否有声称接受XML输入但无法处理数字字符引用的下游进程?或者这只是一个表面要求:您希望XML使用Unicode字符,而不是对它们的数字引用?在任何一种情况下,我都会编写一个简单的标识转换,并指定输出编码应该是UTF-8。(但如果是这么简单的话,我想你不会问这个问题,因为答案是显而易见的。)@C.M.Sperberg-McQueen你会如何使用
指定UTF-8输出编码。现在还不清楚你为什么认为你需要在这里做任何事情。Batik生成的输出和您想要的表单包含完全相同的信息,并且将由任何一致的XML解析器进行相同的处理。坚持使用特定的编码看起来有点像图腾崇拜。我知道XML实体代表字符,但对人类来说,使用字符而不是实体真的要容易得多。这是使用支持XML的编辑器以扩展形式显示字符的一个很好的理由。
<glyph unicode="&#xf900;" glyph-name="null" horiz-adv-x="256" d="…" />
<glyph unicode="豈" glyph-name="null" horiz-adv-x="256" d="…"/>
<xsl:template match="svg:glyph" mode="from-block">    
  <xsl:copy-of select="."  disable-output-escaping="yes" />
  <xsl:apply-templates />
</xsl:template>