Subject: Re: [xsl] What does name="{name()}" mean? From: Syd Bauman <Syd_Bauman@xxxxxxxxx> Date: Fri, 25 Dec 2009 12:58:15 -0500 |
> Sometimes in templates a pattern like the following appear: > <xsl:template .....> > <xsl:element name="{name()}" ....> > .... > </xsl:element> > </xsl:template> > What do the curly brackets and name="{name()}" mean? Hmm... other people who frequent this list are far more qualified to provide a precise answer than I, but I can give you a quick idea. The <xsl:element> element puts an element node onto the output tree. The name of the element it puts on the output tree is specified by the value of its name= attribute. So <xsl:element name="platypus"> <xsl:attribute name="bill">duck</xsl:attribute> <xsl:text>Prius</xsl:text> </xsl:element> puts <platypus bill="duck">Prius</platypus> into the output. In XSLT, some attributes take as their value an "attribute value template". The values of these attributes are "an alternating sequence of fixed parts and variable parts. A variable part consists of an XPath expression enclosed in curly brackets ({}). A fixed part may contain any characters, except that a left curly bracket must be written as {{ and a right curly bracket must be written as }}." So the curly braces mean "evaluate my contents as an XPath expression". The expression, here, consists of a call to the name() function, which returns the fully qualified name (i.e., both the namespace part and the local part) of the name of the node that is passed to name(), or (as is the case here) by default the context node (i.e., name() is the same as name(.)). I think this has pretty much the same net effect as <xsl:element name="{local-name()}" namespace="{namespace-uri()}"> which I prefer only because it is more explicit.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] What does name="{name()}", G. Ken Holman | Thread | [xsl] Dynamically Converting text w, Alex Muir |
Re: [xsl] What does name="{name()}", G. Ken Holman | Date | [xsl] XSLT documentation, Hoskins & Gretton |
Month |