|
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:56:11 -0400 |
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'.
~/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@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Can a single XPath statem, Mark | Thread | Re: [xsl] Can a single XPath statem, Mark |
| Re: [xsl] Can a single XPath statem, Dimitre Novatchev | Date | Re: [xsl] Can a single XPath statem, Mark |
| Month |