Re: [xsl] XPath location problem

Subject: Re: [xsl] XPath location problem
From: Florent Georges <darkman_spam@xxxxxxxx>
Date: Wed, 30 Aug 2006 01:57:39 +0200 (CEST)
Per Eberg 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[@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 
	
		
___________________________________________________________________________ 
Dicouvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! 
Yahoo! Questions/Riponses pour partager vos connaissances, vos opinions et vos expiriences. 
http://fr.answers.yahoo.com 

Current Thread