XSL-FO - 使用<fo:character>在<xsl:template match =“/”> </xsl:template> </fo:character>中替换字符的格式

时间:2013-11-20 14:48:09

标签: xml xslt xsl-fo

我想让(不是)总是在我的xsl-fo输出中显示为上标。我无法将其包装在&lt; sup&gt;因为它会影响我们的翻译/本地化过程。可以用&lt; fo:character /&gt;来完成吗? ?

1 个答案:

答案 0 :(得分:0)

请花时间仔细研究您的问题。 <sup>标记用于HTML,而不是XSL-FO。

相反,您可以按如下方式实现上标:

<fo:inline vertical-align="super">
The said character.
</fo:inline>

使用fo:inline属性baseline-shift也可以。 这可能与您的问题有关:How to match <sup>value</sup> in XSL-FO

编辑:在输入XML方面,最佳做法(即最方便)是在代码本身中指示额外的格式。如果格式更改,您可以将段落分成几个“运行”(例如Office OpenXML,这大约是它的样子):

<paragraph>
 <run>This is normal text</run>
 <run>This is superscript</run>
 <run>Normal text again</run>
</paragraph>

或者将上标元素嵌入到文本内容中,如下所示:

<paragraph>
 <text>This is normal text <font align="super">superscript text</font>normal text</text>
</paragraph>

现在,尝试将XML转换为适合一个或另一个表示。例如,看看xsl:character-map。可以将®字符映射到输出树中的<font align="super">®</font>