Hi Luca, last time you really helped me out from the following problem.Thanks for that. This time I want to use a function in XSL such that it takes two parameters- string and length. such as showName(String name, int length) here I want to show name upto 5 character length, if name length is more than 5 character then show "....." after 5 character such as showName("Luca Morandini", 5) then it should show Luca.... I want to handle it in XSL only but not in XSP. so please help me such that I can use this type of function in XSL and pass name in run time. Can you send me an example for that? Thanks for that. Niket ----- Original Message ----- From: "Luca Morandini" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Saturday, April 13, 2002 6:17 PM Subject: RE: making tree like structure using XML,XSP,XSL
> Niket, > > here you are... > > SITEMAP.XMAP (fragment) > <map:pipeline> > <map:match pattern="hash.xml"> > <map:generate src="documents/hashtable.xml"/> > <map:transform src="stylesheets/hashtable.xsl"/> > <map:serialize type="xml"/> > </map:match> > </map:pipeline> > > HASHTABLE.XML > <?xml version="1.0"?> > <page> > <entry id="1" parentid="0"/> > <entry id="2" parentid="0"/> > <entry id="3" parentid="0"/> > <entry id="4" parentid="0"/> > <entry id="5" parentid="1"/> > <entry id="6" parentid="1"/> > <entry id="7" parentid="6"/> > <entry id="8" parentid="7"/> > <entry id="11" parentid="5"/> > <entry id="9" parentid="2"/> > <entry id="10" parentid="2"/> > <entry id="12" parentid="5"/> > </page> > > HASHTABLE.XSL > <?xml version="1.0"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > > <xsl:template match="page"> > > <!-- Starts the tree --> > <xsl:element name="tree"> > > <xsl:apply-templates/> > > </xsl:element> > > </xsl:template> > > <!-- Selects main branches --> > <xsl:template match="//entry[@parentid=0]"> > > <xsl:call-template name="process-branch"> > <xsl:with-param name="id"><xsl:value-of select="@id"/></xsl:with-param> > <xsl:with-param name="parentid"><xsl:value-of > select="@parentid"/></xsl:with-param> > </xsl:call-template> > > </xsl:template> > > <!-- Recursive function --> > <xsl:template name="process-branch"> > <xsl:param name="id"/> > <xsl:param name="parentid"/> > > <xsl:choose> > > <!-- If element has no branches (i.e. is a leaf) --> > <xsl:when test="count(//entry[@parentid=current()/@id])=0"> > > <!-- Writes the "leaf" element --> > <xsl:element name="leaf"> > <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute> > </xsl:element> > > </xsl:when> > > <!-- If element has branches --> > <xsl:otherwise> > > <!-- Starts a "branch" element --> > <xsl:element name="branch"> > <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute> > > <!-- For every branches of current branch --> > <xsl:for-each select="//entry[@parentid=current()/@id]"> > > <!-- Recurse the branch processing --> > <xsl:call-template name="process-branch"> > <xsl:with-param name="id"><xsl:value-of > select="@id"/></xsl:with-param> > <xsl:with-param name="parentid"><xsl:value-of > select="@parentid"/></xsl:with-param> > </xsl:call-template> > > </xsl:for-each> > > </xsl:element> > > </xsl:otherwise> > > </xsl:choose> > > </xsl:template> > > </xsl:stylesheet> > > Best regards, > > --------------------------------------------- > Luca Morandini > GIS Consultant > [EMAIL PROTECTED] > http://utenti.tripod.it/lmorandini/index.html > --------------------------------------------- > > -----Original Message----- > From: Niket Anand [mailto:[EMAIL PROTECTED]] > Sent: Friday, April 12, 2002 5:13 PM > To: Niket Anand > Subject: making tree like structure using XML,XSP,XSL > > > Hi All, > I have one function that connect to database and retrive data in form of > Hashtable. > My Hashtable may be like this. > MsgID ParentID > 1 0 > 2 0 > 3 0 > 4 0 > 5 1 > 6 1 > 7 6 > 8 7 > 9 2 > 10 2 > 11 5 > 12 5 > > Tree structure would be like this based on MsgID and ParentID > MsgID will be the Id of a tag and parentid is the id of the parent with > which it is linked. > 1(parent0) > | > | > -------5(child of 1) > | > |___11(child of 5) > | > |____12(child of 5 and sibling of 11) > ____6(child of 1 and sibling of 5) > | > |____7(child of 6) > | > |___8(child of 7) > 2(parent 2) > | > |____9(child of 2) > | > |____10(child of 2) > > 3(parent 3) > > 4(parent 4) > Like this I have to show dynamic tree like structure in HTML form.I am using > cocoon2.0 > This can be either handled by XSP or XSL or both. > Please suggest me how to solve the recursive loop problem using XSL.. > How can I apply logic to have dynamic tree structure building function based > on the values of Hashtable keys and values. > Pls suggest ideas. > Thanks, > Niket --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faqs.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>