Re: [xsl] <xsl:number> in XPath

Subject: Re: [xsl] <xsl:number> in XPath
From: António Mota <xptm@xxxxxxx>
Date: Thu, 9 Dec 2004 19:53:43 +0000
I'm so stupid it hurts (or at least ignorant...)

It's (//menu)[$pos]/ancestor::menu, isn't it?



Citando Antsnio Mota <xptm@xxxxxxx>:

> 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@xxxxxxxxx>:
>
>
> Citando David Carlisle <davidc@xxxxxxxxx>:
>
> >
> > (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
> > ________________________________________________________________________
> >
> >
>
>
>
>
>
> O SAPO ja esta livre de vmrus com a Panda Software, fique vocj tambim!
> Clique em: http://antivirus.sapo.pt
>





O SAPO ja esta livre de vmrus com a Panda Software, fique vocj tambim!
Clique em: http://antivirus.sapo.pt

Current Thread