Subject: RE: [xsl] xsl:apply-templates doesn't fill variable correctly From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 1 Aug 2005 10:17:01 +0100 |
I can't see what's wrong here, I suspect the error is in the part of the stylesheet that you haven't shown us. One comment on your coding style: You do this: > <xsl:template match="*"> > <xsl:when test="name()='fussnote'"> and later this: > <xsl:template match="@*"> > <xsl:when test="name()='href'"> In both cases, this isn't a good way of using template rules. It's much better to have specific template rules for each kind of element or attribute, than to have a generic rule which consists of a big xsl:choose that switches on the element or attribute name. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Lensch, Thomas [mailto:Lensch@xxxxxxxx] > Sent: 01 August 2005 09:49 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] xsl:apply-templates doesn't fill variable correctly > > Hi, > > the following snipet shows the usage of variable tHtml: > > When i find a 'fussnote' in my xml i apply templates into tHtml. Then, > this variable is processed further. > > > <xsl:template match="*"> > ... > <xsl:when test="name()='fussnote'"> > <xsl:variable name="tHtml"> > <xsl:apply-templates > select="text()|*"/> > </xsl:variable> > <!-- Pos_1 --> > <xsl:variable name="ttHtml"> > <xsl:apply-templates > select="xalan:nodeset($tHtml)" mode="escape"/> > </xsl:variable> > .... further processing and output of > $ttHtml > </xsl:when> > > <!-- Process Attributes --> > <xsl:template match="@*"> > <xsl:choose> > <xsl:when test="name()='href'"> > <xsl:choose> > <xsl:when test="starts-with(.,'#')"> > <xsl:attribute name="href"> > <xsl:call-template name="VerityLink"> > <xsl:with-param name="price" > select="'0.0'"/> > <xsl:with-param name="part" > select="/*/parameter/doc.part"/> > </xsl:call-template> > <xsl:value-of select="."/> > </xsl:attribute> > </xsl:when> > <xsl:otherwise> > .... > > > > Excerpts of my XML file: > a) > <fussnote nr="13"> > <a href="#rd_200">Dazu Rn. 200</a>.</fussnote> > > b) > <fussnote nr="71"> > <a href="#rd_103">Dazu Rn. 103</a>.</fussnote> > > While a) works b) doesn't. In b) only the "." ist output. > > When i use apply-templates without putting the result in a > variable, b) > works too! > > Does anybody have some hints for me? Possible problem of recursion on > variable content? > > Best regards > Thomas.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl:apply-templates doesn, David Carlisle | Thread | [xsl] xsl:apply-templates doesn't f, Lensch, Thomas |
Re: [xsl] Grouping problem, Mukul Gandhi | Date | AW: [xsl] xsl:apply-templates doesn, Lensch, Thomas |
Month |