<xsl:for-each select="../div">
<xsl:choose>
<xsl:when test="@class='champLibre'">
<fo:inline keep-with-next.within-line="always" >
<xsl:value-of select="text()"/>
</fo:inline>
<fo:inline border-bottom-style="dotted" border-bottom-color="#000"
border-bottom-width="1pt"><xsl:value-of select="div/text()"/>
<xsl:text>      </xsl:text>
</fo:inline>
</xsl:when>
我想将块(div的内容+某些文本)对齐在同一行,这样当它到达行尾时,包含div + some文本的块必须转到下一行,如果有的话div + some文本没有足够的空间。
但是,我得到这样的东西:
First line: .... some
Second line: words:.....
我想要的是:
First line: ....
Second line: some words:...
答案 0 :(得分:1)
fo:inline
(当前)必须与行中接下来的内容保持一致,接下来的内容是fo:inline
,以不间断的空格结束。你还没有离开任何地方去破线。
尝试将每一对放入单独的fo:block
:
<xsl:for-each select="../div">
<xsl:choose>
<xsl:when test="@class='champLibre'">
<fo:block>
<xsl:value-of select="text()"/>
<fo:inline border-bottom-style="dotted" border-bottom-color="#000"
border-bottom-width="1pt">
<xsl:value-of select="div/text()"/>
<xsl:text>      </xsl:text>
</fo:block>
</xsl:when>