This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Node selection based on parent attribute
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Fri, 30 Aug 2002 23:15:31 +0100
- Subject: RE: [xsl] Node selection based on parent attribute
- Reply-to: xsl-list at lists dot mulberrytech dot com
> If I use:
> <xsl:template match="tree">
> <xsl:apply-templates select="menu"/>
> </xsl:template>
>
> <xsl:template match="menu">
> <xsl:for-each select="menu[@id=$id]/menu">
> <xsl:value-of select="@id"/>
> </xsl:for-each>
> </xsl:template>
The for-each expands to
<xsl:for-each select="child::menu[@id=$id]/child::menu">
In other words, you are processing menu elements that are grandchildren
of the menu matched by the template rule. But none of your menu elements
have menu grandchildren...
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
>
>
> with an xml structure of :
>
> <tree>
> <menu id="1" countryID="1" description="Com site" href="">
> <menu id="4" countryID="1" description="My Buisness Type"
> href=""></menu>
> <menu id="5" countryID="1" description="Home Office"
> href=""></menu>
> <menu id="15" countryID="1" description="Small buisness"
> href=""></menu>
> </menu>
> </tree>
>
> passing through a parameter of 1 using:
> <xsl:param name="id" select="menu"/>
>
> Then it doesn't bring back anything, can you see anthing
> wrong with the
> above.
>
> Cheers,
>
>
> >From: ronald heller <ronald@salience.nl>
> >Reply-To: xsl-list@lists.mulberrytech.com
> >To: xsl-list@lists.mulberrytech.com
> >Subject: Re: [xsl] Node selection based on parent attribute
> >Date: Fri, 30 Aug 2002 14:45:37 +0200
> >
> >
> >><menu id=6>
> >> <menu id=7/>
> >> <menu id=8/>
> >></menu>
> >
> ><xsl:for-each "menu[@id=$id]/menu">
> ><xsl:value-of select="@id"/>
> ></xsl:for-each>
> >
> >this would get you 7 & 8 as a result if $if would be 6.
> >
> >cheers
> >RH
> >At 12:32 PM 30-08-02 +0000, you wrote:
> >
> >>Hi,
> >>I would like to produce a list of child nodes from a parent
> that has a
> >>specific attribute value, ie with the following xml
> structure I want to
> >>just retrive the children of the menu node with an id of 6.
> >><menu id=6>
> >><menu id=7/>
> >><menu id=8/>
> >></menu>
> >><menu id=9>
> >><menu id=10/>
> >><menu id=11/>
> >></menu>
> >>
> >>I have tried
> >><xsl:for-each "../@id=$id">
> >><xsl:value-of select="@id"/>
> >></xsl:for-each>
> >>Using a param passed in from asp.
> >>Am I on the right track, and would the above method be the best to
> >>retrieve a certain section of a heirachacal xml structure
> based on a
> >>parent attribute.
> >>I am using asp with the msxml parser.
> >>Thanks in advance.
> >>
> >>
> >>
> >>
> >>
> >>_________________________________________________________________
> >>Send and receive Hotmail on your mobile device:
http://mobile.msn.com
>>
>>
>>XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>Salience B.V.
>"The XML place to be"
>Coltbaan 27b
>3439 NG Nieuwegein
>
>Ronald Heller
>Technisch Consultant
>www.salience.nl
>ronald@salience.nl
>
>T +31(0)30 60 56 675
>F +31(0)30 60 56 324
>M +31(0)6 20 41 25 77
>MSN ronald_heller@hotmail.com
>
>
>XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list