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]

Re: Simple problem - complicated solution


<xsl:template match="data">
   <!-- selects the first datum/@value with not a following datum/@value 
less than this one -->
   <min value="{datum[not(../datum/@value &lt; @value)]/@value}"/>
   <!-- selects the first datum/@value with not a following datum/@value 
greater than this one -->
   <max value="{datum[not(../datum/@value > @value)]/@value}"/>
   <!-- like in mathematics: avg = sum / count -->
   <avg value="{sum(datum/@value)/count(datum/@value)}"/>
</xsl:template>

Regards,

Joerg

Antonio Fiol schrieb:
> Hello, I have an XML document that contains:
> 
> <data>
> <datum value="123"/>
> <datum value="234"/>
> <datum value="99"/>
> <!-- Some more data... -->
> </data>
> 
> I wish to use a XSLT document to output:
> 
> <data>
> <min value="99" />
> <max value="234" />
> <avg value="..." />
> </data>
> 
> This does not seem too complicated, but I cannot figure how to do it.
> 
> I do not mind if I have to rewrite my question in terms of:
> 
> <datum>123</datum>
> 
> and my answer as:
> 
> <min>99</min>
> 
> Thank you very much in advance.
> 
> Antonio Fiol


 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]