xsl-list
[Top] [All Lists]

Re: [xsl] XPath location problem

2006-08-29 16:58:01
Per Åberg wrote:

  Hi

I want to perform this operation: If there is more than one "name 
language='English'" in "species", then create a temporary node set
with the 
"name" elements following and including the second
"language='English'". 

  You can use the following-sibling axis:

    > cat per.xml
    <animal>
      <species>
        <name language="English">Wolf</name>
        <name language="Spanish">Lobo</name>
        <name language="English">Warg</name>
        <name language="Latin">Canis Lupus</name>
        <name language="French">Loup</name>
      </species>
    </animal>

    > cat per.xsl
    <xsl:transform
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
        version="2.0">

      <xsl:output indent="yes"/>

      <xsl:template match="/">
        <xsl:apply-templates select="animal/species"/>
      </xsl:template>

      <xsl:template match="species">
        <xsl:variable name="second"
                      select="name[(_at_)language eq 'English'][2]"/>
        <new>
          <xsl:copy-of select="
              $second, $second/following-sibling::name"/>
        </new>
      </xsl:template>

    </xsl:transform>

    > gexslt per.xsl per.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <new>
       <name language="English">Warg</name>
       <name language="Latin">Canis Lupus</name>
       <name language="French">Loup</name>
    </new>

  Regards,

--drkm
























        
 p4.vert.ukl.yahoo.com uncompressed/chunked Tue Aug 29 23:13:38 GMT 2006 
        
                
___________________________________________________________________________ 
Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet 
! 
Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos 
expériences. 
http://fr.answers.yahoo.com 


--~------------------------------------------------------------------
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>