This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Dynamically selecting Attributes


suresh talluri wrote:
> I recently came across this piece of code in this emailing list,can someone
> explain me wot excalty does this special characters do..

Sigh... I'll bite. You need to do some more reading.

Go to http://www.skew.org/xml/links/ and look at the section marked
'Specifications - XML and XSLT' and 'Tutorials - XML and XSLT'. In
particular you need to understand XSLT, and to understand XSLT you have to
understand XPath.

> <xsl:template match="find">

Assuming the 'xsl' prefix maps to the correct namespace URI, this encloses
an XSLT template that is a suitable match for an element node named
'find'. If the XSLT processor encounters such a node, there is a good
chance that the instructions in this template will be executed.

> <xsl:value-of select="//record/@*[name()=current()/@target]"/>

This is an XSLT instruction to create a text node in the result tree.
The character data in the text node will be the string-value of the first
node in the node-set identified by the XPath expression

  //record/@*[name()=current()/@target]

 /@*    : attributes with any name, in any namespace, belonging to...
 record : elements named record, that are...
 //     : descendants of the root node.

 [ foo ] : narrows down the set to just those for which foo is true.
 name()  : name of the context node (attribute name, in this case).
 =       : equality comparison operator.
 /@target : attributes named target, that are children of...
 current() : the current node (the one that was current before this
             instruction was instantiated, as opposed to the context node).

As per XPath rules, the comparison of a string (as returned by the name()
function) and a node-set (as identified by @target) will be handled
as a stringwise comparison, as if it were name()=string(current()/@target).

The concept of string-value and the interaction of the string() function
on node-sets is explained in the XPath Recommendation.

Hopefully someone will get something out of this.

   - Mike
____________________________________________________________________
Mike J. Brown, software engineer at         My XML/XSL resources:
webb.net in Denver, Colorado, USA           http://www.skew.org/xml/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]