xsl-list
[Top] [All Lists]

Re: <xsl:number> in XPath

2004-12-09 12:43:42
My webmail is not very reliable, sorry for that.

There is always a current node in XSLT, you can always use an axis in a
select expression.  so I don't understand this comment.

Yes, there is a current node, but it's the root one, not the one i want the
ancestors at the moment of the select.

<xsl:template match="/">
        <xsl:apply-templates select="/menus/menu | (//menu)[$pos]" />
</xsl:template>

I want both the /menus/menu, the (//menu)[$pos] and their ancestors and first
children, but i can't do something like

<xsl:apply-templates select="/menus/menu | (//menu)[$pos]" | (//menu)[$pos]/menu
 | ancestor:menu[(//menu)[$pos]]/>

or is there something similar?

That does seem to be a direct translation of your English into Xpath, so
presumably this is what you want.

There was no XSL expressions after that, maybe you forget it?

why do you need to start walking back up the tree here. That select
selects all ancestor menus that have a parent menu (but not ancestor
menus that don't have a parent menu), the current node and any menu
children of the current node.

All this taking as reference the current node, correct? If yes, i think it's
that what i want.

<menu>
<menu>
    <menu>  *
        <menu>  --> this is the (//menu)[$pos]
<menu>

So in the first select i didn't select the one i marked (*), so i need the
ancesters of the (//menu)[$pos]

sorry, as a matter of policy never check off-list examples (I waste
enough time just looking at small inlined examples on the list:-)

Puting in words, i have that nested <menu> nodes that i want to expand when i
click then. So at first i want to show all the first-level menus, and when i
click one of then i want to expand to it's first chidrens and so on.

Once agains, thank for your insights.


Citando David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk>:


Citando David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk>:


(your message came out one word per line, I had to reflow it to read it)


Just a comment on,


To my understanding i canot use
the axis in the select xpath because they rely on a context node, wich
i don't have at the time.

There is always a current node in XSLT, you can always use an axis in a
select expression.  so I don't understand this comment.

However

I want to process all <xxx> nodes that
are at the 1st level of deepness, plus the <xxx> at absolute position
number n

So i translate this to

<xsl:apply-templates
select="/menus/menu | (//menu)[$pos]" />

That does seem to be a direct translation of your English into Xpath, so
presumably this is what you want.

But this looks a bit strange:

<xsl:for-each
select="ancestor::menu/menu | self::menu | menu">

Given that you already slected all your top level menus and the $pos'th
menu in your first <xsl:apply-templates select="/menus/menu | (//menu)[$pos]"
/>
why do you need to start walking back up the tree here. That select
selects all ancestor menus that have a parent menu (but not ancestor
menus that don't have a parent menu), the current node and any menu
children of the current node.

If thats what you want, this is the right thing, but it looks strange to
me.


The
XML:
http://gti.clientes.gtinformatica.pt/Site/Java/Menus.xml

sorry, as a matter of policy never check off-list examples (I waste
enough time just looking at small inlined examples on the list:-)

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--







O SAPO já está livre de vírus com a Panda Software, fique você também!
Clique em: http://antivirus.sapo.pt

--~------------------------------------------------------------------
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>