2015-06-07 2 views
0

У меня есть xml-файл, который содержит несколько элементов типа «объявление». Это последнее содержит в качестве цены подэлемента.Как получить максимальное значение с помощью xsl: sort

Я хочу извлечь максимальное значение цены с помощью xsl:sort и xsl:for-each, которые просматривают все элементы.

+1

Вы можете использовать ' max() '. Я не вижу необходимости использовать 'xsl: sort' или' xsl: for-each'. –

+0

Можете ли вы привести мне пример plz –

+0

Было бы лучше, если бы вы могли опубликовать пример, над которым работаете. Или вы можете просмотреть многочисленные примеры на этом сайте [например, этот] (http://stackoverflow.com/questions/17963067/how-to-get-maximum-value-under-same-node-in-xslt). –

ответ

2

Как указано в комментариях для других членов, max может использоваться как без необходимости сортировки xslt и xslt для каждого.

Чтобы иметь возможность использовать XSL в XSL как есть, вот простой кусок кода, чтобы попробовать:

<xsl:variable name="the_max"> 
<xsl:for-each select="Node/Item/year"> 
<xsl:sort data-type="number" order="descending"/> 
<xsl:if test="position()=1"><xsl:value-of select="."/></xsl:if> 
</xsl:for-each> 
</xsl:variable> 
<xsl:value-of select="$the_max"/> 

используя значения XSL следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<Node> 
<Item><year>1985</year></Item> 
<Item><year>1986</year></Item> 
<Item><year>1987</year></Item> 
<Item><year>1988</year></Item> 
<Item><year>1989</year></Item> 
<Item><year>1909</year></Item> 
<Item><year>1991</year></Item> 
<Item><year>1992</year></Item> 
<Item><year>1993</year></Item> 
<Item><year>1994</year></Item> 
<Item><year>1995</year></Item> 
<Item><year>1996</year></Item> 
</Node> 
Смежные вопросы