【问题标题】:XSL Where to Hyphenate wordsXSL 在哪里连字
【发布时间】:2011-12-20 13:52:31
【问题描述】:

我的表格中有很多数字是连字符的。 但是当有一个包含“/”字符的数字时,我想在那之后加上连字符......如果有必要的话。

这个有属性吗?

XML 示例:

<ptxt>123567/89012345</ptxt>

如有必要,在“/”后拆分。

谢谢!

【问题讨论】:

  • 我正在生成 XSL-FO(然后将 Antenna House 转换为 PDF)。
  • Antenna House 是否有任何类型的连字符配置?
  • 您是否考虑过插入 unicode 软连字符? en.wikipedia.org/wiki/Soft_hyphen
  • Antenna House 可以读取自定义的 xml 文件,您可以在其中以特殊方式指定要连字的所有单词;例如,您可以写“long-word”,因此“longword”一词将在“long”之后和“word”之前使用连字符(如有必要)。
  • 但我不想在 hyphenation-xml-file 中添加每个数字。 :P

标签: xslt xsl-fo


【解决方案1】:

您可以在 / 之前添加一个单词连接符 (&amp;#8288;)。使用 XSLT 执行此操作的一种方法是:

<xsl:variable name="test" select="'123/456'"/>
<xsl:choose>
    <xsl:when test="contains($test,'/')">
        <xsl:value-of select="concat(substring-before($test,'/'),
            '&#8288;','/',substring-after($test,'/'))"/>
    </xsl:when>
    <xsl:otherwise>
        <xsl:value-of select="$test"/>
    </xsl:otherwise>
</xsl:choose>        

【讨论】:

    【解决方案2】:

    更短的方法是: &lt;xsl:copy-of select="replace($test,'/','&amp;#8288;/')"/&gt;

    【讨论】:

      猜你喜欢
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多