- From: Khaled Aly <ka.aly@luxsci.net>
- Date: Wed, 07 Nov 2007 19:20:20 +0200
- To: Tony Graham <Tony.Graham@MenteithConsulting.com>
- CC: www-xsl-fo@w3.org
- Message-ID: <4731F3D4.10706@luxsci.net>
Tony
Yes, I guess this one is an xslt issue, but what you wrote below sounds
relevant, because some every-other-node that is not meant for display
seems always counted. So, I get the list numbered: 2, 4, 6, ... this is
apart from the extra white space pbm). The position() function should
return a number equal to the position of the current node in the context
node-set, which is "List".
Can you please elaborate this statement re the newline before the item:
quote
the first child of the <list> is the text node containing the newline
before the first <item>.
unquote
Thanks.
Khaled
_The XML:_
<List ordered="yes">
<Item>text</Item>
...
<Item>text</Item>
</List>
_and the XSLT:_
<xsl:template match="Item">
<fo:list-item>
<fo:list-item-label>
<xsl:if test="../@ordered='yes'">
<fo:block><xsl:number value="*position( )*"/>.
</fo:block>
</xsl:if>
<xsl:if test="../@ordered='no'">
<fo:block>></fo:block>
</xsl:if></fo:list-item-label>
<fo:list-item-body>
<fo:block>
<xsl:apply-templates/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</xsl:template>
Tony Graham wrote:
> Both of these sound like XSLT problems where you have whitespace text
> nodes between your element nodes that you aren't considering.
>
> Making up an example, if your XML was:
>
> <list ordered="yes">
> <item/>
> <item/>
> </list>
>
> then the first child of the <list> is the text node containing the
> newline before the first <item>.
>
> You can either select only the nodes you are interested in by using
> @select on your <xsl:apply-templates>, or you can strip the whitespace
> nodes from the source tree using a top-level <xsl:strip-space> [1],
> e.g., <xsl:strip-space elements="list"/> for my example.
>
> Regards,
>
>
> Tony Graham.
> ======================================================================
> Tony.Graham@MenteithConsulting.com http://www.menteithconsulting.com
>
> Menteith Consulting Ltd Registered in Ireland - No. 428599
> Registered Office: 13 Kelly's Bay Beach, Skerries, Co. Dublin, Ireland
> ----------------------------------------------------------------------
> Menteith Consulting -- Understanding how markup works
> ======================================================================
>
> [1] http://www.w3.org/TR/xslt#strip
>
>
>
Received on Wednesday, 7 November 2007 17:21:07 UTC