UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: nunucbku от 17 Декабря 2013, 13:38:47

Название: Вывод первого ненулевого значения из массива xslt
Отправлено: nunucbku от 17 Декабря 2013, 13:38:47
Здравствуйте.  У меня есть набор значений в массиве:
Цитировать
<xsl:value-of select="$item//property[@name='название_свойства']/value" />
<xsl:value-of select="$item//property[@name='название_свойства2']/value" />
....
<xsl:value-of select="$item//property[@name='название_свойства15']/value" />
Мне надо вывести первое ненулевое значение из этого массива. Подскажите, как это сделать?
Название: Re:Вывод первого ненулевого значения из массива xslt
Отправлено: muldy от 17 Декабря 2013, 22:05:35
Здесь проще взять группу полей и использовать, например:

<xsl:apply-templates select="document('udata://Здесь ваш вызов')//group[@name = 'Ваша группа полей']/property" mode="info" />

И дальше:

<xsl:template match="property" mode="info">
  <xsl:variable name="val" select="value" />

   <xsl:if test="$value &gt; '0'">
     Ваши действия
  </xsl:if>
</xsl:template>

Название: Re:Вывод первого ненулевого значения из массива xslt
Отправлено: nunucbku от 18 Декабря 2013, 09:41:40
Я сделал такое решение (и оно работает):
<xsl:apply-templates select="($item//property[@name='bla2']/value | $item//property[@name='bla1']/value | $item//property[@name='bla']/value)[not (. = 0)][1]" />

Подскажите, в плане оптимизации и скорости, которое лучше?
Название: Re:Вывод первого ненулевого значения из массива xslt
Отправлено: muldy от 18 Декабря 2013, 17:46:06
В плане скорости думаю ваше будет по быстрее не много, не не существенно!
Но вот мой вариант более гибко можно кастомизировать, да и проще в будущем будет ориентироваться!