[xsl] Make selection depending on value n-th child element

Subject: [xsl] Make selection depending on value n-th child element
From: Martin Beugel <mbeugel@xxxxxxxxx>
Date: Sat, 18 May 2002 17:43:47 +0200
Make selection of element depending on value n-th child element.

In my xml structure I have row elements. Each row element can have multiple value elements.
I want to select the rows where the n-th value > 0.
In the xsl file I use <xsl:if test="./value &gt; 0">.
This has the result that the last value is checked.


I want to be able to do this for the n-th value.
I've tried <xsl:if test="./value[1] &gt; 0">
to test the second value but this does not work. How do I address the value the n-th child
element to make a selection?


Martin Beugel

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<table>
...
<row>
<value>1998-01-01T00:10:00</value>
<value>121</value></row>
<row>
<value>1998-01-01T00:30:00</value>
<value>107</value></row>
<row>
<value>1998-01-01T00:50:00</value>
<value>92</value></row>
<row>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
<xsl:output method="xml" omit-xml-declaration="no" standalone="yes"/>

<xsl:template match="row">
<xsl:if test="./value &gt; 0">
<xsl:for-each select="value">
   <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:for-each>
</xsl:if>

</xsl:template>

  <xsl:template match="/ | @* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


Current Thread