This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Make selection depending on value n-th child element


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]