xsl-list
[Top] [All Lists]

RE: Node selection based on parent attribute

2002-08-30 15:15:31
If I use:
<xsl:template match="tree">
  <xsl:apply-templates select="menu"/>
</xsl:template>

<xsl:template match="menu">
   <xsl:for-each select="menu[(_at_)id=$id]/menu">
         <xsl:value-of select="@id"/>
    </xsl:for-each>
</xsl:template>

The for-each expands to

<xsl:for-each select="child::menu[(_at_)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(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)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(_at_)salience(_dot_)nl>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)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[(_at_)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(_at_)salience(_dot_)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(_at_)hotmail(_dot_)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