Subject: [xsl] choose an "artificial" root node From: "Fr\id\iric SCHWEBEL" <schwebel@xxxxxxxxxxxxxxxx> Date: Wed, 14 Feb 2001 18:00:26 +0100 |
Hi folks, Thanks a lot for all your quick replies. I have a last question (today :o) ) : in my xml files, the root node is always <theme>, with a <title> child and many other. Let's say it's a math lesson, there's a math <theorem> that comes along with its <demonstration> and 2 <examples>. If the user has choosen "full presentation", no problem, everything is displayed, I can handle it :) but if he has chosen "minimal presentation", only what's really important is displayed (so, only the theorem itself) and the examples and the demo are links and should be displayed in another window when the user clicks on it. So I thought this would work : <xsl:template match="theme"> ........ <xsl:choose> <xsl:when test="not($id)"> <CENTER><H1><xsl:apply-templates select="titre" /></H1></CENTER> <xsl:apply-templates select="*[not(self::titre)]" /> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="//*[generate-id()=$id]" /> </xsl:otherwise> </xsl:choose> </xsl:template> .............. <xsl:template match="demonstration"> <xsl:variable name="demoid"> <xsl:value-of select="generate-id()" /> </xsl:variable> <xsl:choose> <xsl:when test="$id=$demoid"> <H1>Demo</H1> <xsl:apply-templates /> </xsl:when> <xsl:otherwise> <xsl:if test="$contenu='complet'"> <xsl:apply-templates /> </xsl:if> <xsl:if test="$contenu!='complet'"> <P><A HREF="{$NomDoc}?id={$demoid}" TARGET="_blank">Demonstration</A></P> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:template> ................ So, as you see, when there's no "id" param in the URL, the <demonstration> tag becomes a link to the same URL with its id as a parameter. And when the url as an id param, the <theme> tag applies the templates for the node which generate-id () is equal to the $id param. I thought it would work.... but the generated id is different each time the document is loaded ! What is an id good for if it changes everytime ? And do you know how I could achieve what I want ? Thanks a lot for any reply. Frédéric XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] need whitespace between a, Andrew Welch | Thread | [xsl] Re: need whitespace between a, Dimitre Novatchev |
RE: [xsl] XPath expression "everyth, Mark Wilgus | Date | RE: [xsl] Saxon Quirk, Devlin, Kurt |
Month |