[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Node selection based on parent attribute

Subject: Re: Node selection based on parent attribute
From: "katharine wykes" <katharinewykes@xxxxxxxxxxx>
Date: Fri, 30 Aug 2002 16:02:14 +0000
xsl parent attribute
That's really useful, thanks.

The ammended code seems to be causing Netscape 6 to crash. Can you see a problem with the xslt:

<xsl:param name="countryID" select="menu"/>

<xsl:template match="tree">
 <xsl:apply-templates select="menu[@countryID=$countryID]"/>
</xsl:template>

<xsl:template name="menu" match="menu">
<div>
<xsl:attribute name="id">ID<xsl:value-of select="@id"/></xsl:attribute>
<xsl:attribute name="STYLE">visibility:visible;padding-left: 20px;cursor: hand;
</xsl:attribute>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="middle" nowrap="true">
<xsl:attribute name="STYLE">
padding-left: 7px;font-family: Verdana;font-size: 11px;font-color: black;
</xsl:attribute>
<a>
<xsl:attribute name="href">
<xsl:text>javascript:divCheck('ID</xsl:text><xsl:value-of select="@id"/><xsl:text>')</xsl:text>
</xsl:attribute>
<xsl:value-of select="@description"/>
</a>
</td>
</tr>
</table>
<xsl:if test="count(menu) > 0">
<xsl:apply-templates select="menu"/>
</xsl:if>
</div>
</xsl:template>
</xsl:stylesheet>


I've got a recursive call in there. But when I take it out Netscape still seems to be having problems. My xml structure is:
<menu id="6" countryID="1" description="Menu6" href="">
<menu id="7" countryID="1" description="Menu7" href="">
</menu>
</menu>


Thanks in advance.
Kate
From: David Carlisle <davidc@xxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re:  Node selection based on parent attribute
Date: Fri, 30 Aug 2002 15:29:16 +0100

> passing through a parameter of 1 using:

when the param is 1 control passes first to the tree template...

<xsl:template match="tree">
  <xsl:apply-templates select="menu"/>
</xsl:template>

so now the current node list is all the menu elements of tree,
so first the control passes to the menu template, with the current node
being the first menu (which has id=1).

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

This selects all the menu children of the current node which have id=1.

there are no such children so nothing is returned.





i think that what you want might be

<xsl:template match="tree">
  <xsl:apply-templates select="menu[@id=$id]/menu"/>
</xsl:template>

<xsl:template match="menu">
         <xsl:value-of select="@id"/>
</xsl:template>

David

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.

XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list




_________________________________________________________________
Join the world?s largest e-mail service with MSN Hotmail. http://www.hotmail.com



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.