xsl-list
[Top] [All Lists]

Re: [xsl] Can a single XPath statement duplicate the functionality of this verbose <xsl:choose> statement?

2011-10-23 19:56:25
At 2011-10-23 17:39 -0700, Mark wrote:
Hi Ken,
Yes, only one attribute to either element.

You said:
xsl:copy-of select="( ../Location[name(@*)=name(current()/@*)] ,
                    ../Location/@denomination ,
                    '0' )[1]"/>

but I may have explained my needs incorrectly. Your statement works on the first example below [uses @denomination] but returns nothing for the second example; there it should return the value of the <Locations @souvenir-sheet>, i.e., '1'.

So I see. I failed to address the attributes after copying your original expression.

I think the expression below will work for you.

. . . . . . . Ken

~/t/ftemp $ cat mark.xml
<Stamps>
 <Stamp>
       <Formats souvenir-sheet="2895"/>
     <Location denomination="1"/>
</Stamp>

<Stamp>
      <Formats souvenir-sheet="2896"/>
     <Location denomination="5"/>
     <Location souvenir-sheet="1"/>
   </Stamp>
</Stamps>~/t/ftemp $ cat mark.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  version="2.0">
  <xsl:output indent="yes"/>
  <xsl:template match="/">
    <xsl:for-each select="//Formats">
      <result>
      <xsl:copy-of select="( ../Location/@*[name(.)=name(current()/@*)] ,
                             ../Location/@denomination,
                             '0' )[1]"/>
      </result>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>~/t/ftemp $ xslt2 mark.xml mark.xsl
<?xml version="1.0" encoding="UTF-8"?>
<result denomination="1"/>
<result souvenir-sheet="1"/>~/t/ftemp $




--
Contact us for world-wide XML consulting and instructor-led training
Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/s/
G. Ken Holman                   mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>