Subject: Re: [xsl] Can a single XPath statement duplicate the functionality of this verbose <xsl:choose> statement?|
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sun, 23 Oct 2011 20:21:12 -0400
Presuming you have only a single attribute (the name() function will abend if you have more than one), this may work for you ... it expresses a sequence and selects the first member of that sequence:
<xsl:copy select="( ../Location[name(@*)=name(current()/@*)] , ../Location/@denomination , '0' )"/>
This relies on the XPath 2 behaviour of sequence ( (), x ) collapsing to ( x ).
Note the use of current() to return the node that was current at the start of evaluating the XPath expression (also available in XPath 1).
I hope this helps.
. . . . . . . . . Ken
-- Contact us for world-wide XML consulting and instructor-led training Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal