XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Posttop
Venkat PSubject: conditional rendering in XSL..
Author: Venkat P
Date: 16 Jun 2008 06:02 AM
Hi,

There is a html page in which there are multiple hyperlinks in the format:

parentnode1:
child1
child2

parentnode2:
child1
child2


and so on....

when the user clicks on child1 of any parent nodes, the child1 becomes the current parent and the corresponding child nodes are diaplayed as its children....

for this I am using the concept of templates where I have a main template which has all the html in it. With in this template I am using an 'if' condition which checks if there are any children for a context node. if so it calls the same template using call-template.

But I have to call the template when the user clicks the link which I am unable to do. Some thing link

<a href="code to call the template">......</a>

and also i am sending few parameters to the calling template whcih should be used for setting the 'select' of <xsl:for-each> since the child nodes xpath is set dynamically but iam getting an error saying the parameter is nt a node-set.

Please help in resolving this....
I request you suggest any other alternatives for this requement other than templates.

code for reference:

<xsl:template match="/" name="temp">
<xsl:param name="xpath"/>


<xsl:text>Xpath value is</xsl:text>
<xsl:value-of select="$xpath"/>

<xsl:variable name="path" select="concat('x1/x2/x3/level',$xpath)"/>
<xsl:text> path value is</xsl:text>
<xsl:value-of select="$path"/>
<xsl:for-each select="here I have to set the xpath dynamically... I mean the value of 'path'">
<li><strong><a href="#"><xsl:value-of select="name"/> (12)</a></strong>
<ul>
<xsl:for-each select="level">
<li><a href="here I should call the template 'temp'"><xsl:value-of select="name"/>,</a></li>
<xsl:if test="child::node()">
<xsl:value-of select="name()"/>
<xsl:call-template name="temp">
<xsl:with-param name="xpath" select="concat($xpath,'/',name())"></xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</ul>
</li>
</xsl:for-each>
</ul>



</xsl:template>

Thanq.

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.