xsl-list
[Top] [All Lists]

Re: Counting preceding nodes

2005-06-24 09:59:42
Hi Billie,
  Probably the following code might help ..

<xsl:template match="diagram">
    <xsl:attribute name="Number">
        <xsl:value-of select="count(preceding::node()
| ancestor::node())"/>
    </xsl:attribute>            
</xsl:template>

This is not tested. 

(I am relying on this technique based on a problem I
solved earlier.)

Regards,
Mukul

--- Billie <whynot77(_at_)coolgoose(_dot_)com> wrote:

I need help with a problem I'm having.  I need to
count the number of nodes that come before the 
given node, anywhere in the tree.

So for example, say I have this tree:

<book>
    <chapter>
        <para>
            Blah blah blah
            <diagram name="first"/>
        </para>
        <para>Blah blah blah</para>
        <para>
            <diagram name="second"/>
            Blah blah blah
        </para>
        <diagram name="third"/>
    </chapter>
    <chapter>
        <para>Blah blah blah</para>
    </chapter>
    <chapter>
        <diagram name="fourth"/>
        <para>Blah blah blah</para>
    </chapter>
    <chapter>
        <para>
            <quote>
                <diagram name="fifth"/>
                <diagram name="sixth"/>
                Blah blah blah
            </quote>
        </para>
    </chapter>
</book>

I gave the diagrams the appropriate names so you
could see what I was looking for, but basically, 
I'm looking for a way to number the diagrams based
on the absolute order in which they are placed.  
I've tried all sorts of combinations but nothing
seemed to work.  One logical structure I came up 
with, that I couldn't figure out how to translate
into XSL, was: "count the number of diagrams that 
have an ancestor-or-self which is a
preceding-sibling to an ancestor-or-self of the
diagram in 
question".  Is that possible to do?

<xsl:template match="diagram">
    <xsl:attribute name="Number">
        <xsl:value-of select="???"/>
    </xsl:attribute>          
</xsl:template>

Thanks for your help,
Billie


--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





                
__________________________________ 
Yahoo! Mail 
Stay connected, organized, and protected. Take the tour: 
http://tour.mail.yahoo.com/mailtour.html 


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>