RE: [xsl] Compound filter in for-each

Subject: RE: [xsl] Compound filter in for-each
From: "Alan Hale" <A.Hale@xxxxxxxxxx>
Date: Wed, 25 Mar 2009 10:07:01 +0000
>Hope you're starting to get the message. Paths follow a route from A to B,

>and they won't select anything if you don't know where you're starting from.

>Michael Kay


Ah - the penny has dropped. Thanks for your patient replies both.

I've given it some more thought and now managed to achieve mostly what I want
using the <xsl:choose> element - like this:

  <xsl:template match="Folder">

  <xsl:for-each select="Placemark">

   <xsl:choose>
   <xsl:when test = "ExtendedData/Data[@name='rdb_status'and
value='Endangered']">
   <xsl:value-of select="@id" />,
   <xsl:value-of select="name" />,
     <xsl:value-of select="ExtendedData/Data[@name='location_name']/value"/>,
   <xsl:value-of select="ExtendedData/Data[@name='grid_ref']/value"/>,
    <xsl:value-of select="adh:Transform(Point/coordinates)"/>,
   <xsl:value-of select="ExtendedData/Data[@name='rdb_status']/value"/>,
   <xsl:value-of select="ExtendedData/Data[@name='last_seen']/value"/>,
      <br/>
   </xsl:when>
   </xsl:choose>

  </xsl:for-each>
 </xsl:template>

but would like to ask how to construct a complex condition statement,
something like:

[@name='rdb_status'and [value='Endangered' or value='Vulnerable']]  (which
doesn't work - in XML Notepad).

Many thanks again

Alan Hale
Aberystwyth

Current Thread