Subject: RE: [xsl] XSLT test on the name of a node From: "Tim Watts" <timw@xxxxxxx> Date: Tue, 26 Mar 2002 09:29:43 +1100 |
Thanks Joerg, It should have been so clear that I was testing against the context of the predicate, and not the context of the template. I kick myself! Thank you for all your help with this problem. Kind regards, Tim :) > -----Original Message----- > From: Joerg Heinicke [mailto:joerg.heinicke@xxxxxx] > Sent: Monday, 25 March 2002 7:07 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] XSLT test on the name of a node > > > A [...] is a predicate. Everything in a predicate refers to > the node which > belongs to the predicate: > > node[name() = @attr] (a node, whose name is the same as the > value of the > attr; so it's true for <node attr="node"/>) > > In your case it was the same. You selected all nodes, whose > local name is > the same as the value of their ld-tag attribute: <node > ld-tag="node"/> for > example. With current() you change back to the context-node > (on which the > template matches). Otherwise local-name() would give you back > the local-name > of the matched node too, and not of the node you want to select. > > $language/node()[local-name() = current()/@ld-tag] > > Hope this helps, > > Joerg > > > ----- Original Message ----- > From: "Tim Watts" <timw@xxxxxxx> > To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > Sent: Monday, March 25, 2002 7:28 AM > Subject: RE: [xsl] XSLT test on the name of a node > > > > Hi Joerg, > > > > > > <xsl:variable name="translation" > select="$language/node()[local-name() > = @ld-tag]" /> > > > > > I think the problem is in the above code. > > > You are selecting nodes, whose local name is the same as > the value of > their ld-tag > > > attribute. What you probably want to have is current()/@ld-tag: > > > > > <xsl:variable name="translation" > select="$language/node()[local-name() = > current()/@ld-tag]" /> > > > > I don't understand what makes it different when using > current(), although > you were right. The template now works. > > > > I thought by using the template matches I was comparing > with the context > nodes @ld-tag and I can't quite understand the difference. > > > > > Furthermore node() is a superset of *. node() = * + > text() + comment() + > > > processing-instruction(). > > > > Thanks for that. You're giving me quite an education! :) > > > > I have included the template as it now stands below. Could > you explain > how the current() works with it? > > > > Thanks for all your help. > > > > Tim Watts > > > > > > <!-- template called to display method --> > > <xsl:template name="get_payment_method_details"> > > <xsl:variable name="paymentsystems" > select="document('../paymentsystems.xml')/root" /> > > <xsl:variable name="merch_pay_details"><xsl:copy-of > select="/document/data/merchant/payment" /></xsl:variable> > > <xsl:apply-templates > select="$paymentsystems/methods/method[@id=$pmethod]"> > > <xsl:with-param name="merch_pay_details" > select="$merch_pay_details" > /> > > </xsl:apply-templates> > > </xsl:template> > > > > <xsl:template match="method"> > > <xsl:param name="merch_pay_details" /> > > <xsl:apply-templates select="input" mode="getinfo"> > > <xsl:with-param name="merch_pay_details" > select="$merch_pay_details" > /> > > </xsl:apply-templates> > > </xsl:template> > > > > <xsl:template match="input" mode="getinfo"> > > <xsl:param name="merch_pay_details" /> > > <tr> > > <td> > > <xsl:value-of select="$language/*[local-name() = > current()/@ld-tag]" > /> > > </td> > > <td> > > <input type="text" name="{concat('payment/', @name)}" /> > > </td> > > </tr> > > </xsl:template> > > > > XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT test on the name of , Joerg Heinicke | Thread | [xsl] xml and web publishing, Alia Mikati |
Re: [xsl] first occurance of node w, Wendell Piez | Date | [xsl] XSL question, Manoj Jha |
Month |