Вывести один из нескольких тегов, сравнивая их по дате во вложенном элементе
Есть xml вида:
<tag>
...
<date>2022-11-16</date>
...
</tag>
<tag>
...
<date>2022-11-17</date>
...
</tag>
Прошу подсказать какими средствами XSLT воспользоваться, чтобы выбирался только тот тег, в котором дата в элементе была бы самой свежей? Тегов tag может быть от одного, до бесконечности. Спасибо!
Ответы (1 шт):
Автор решения: Yitzhak Khabinsky
→ Ссылка
Полезные XSLT фрагменты.
XSLT 1.0
<!--Получите последнюю дату и поместите ее в переменную-->
<xsl:variable name="latest_date">
<xsl:for-each select="tag">
<xsl:sort select="date" order="descending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="date"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<!--Чтобы увидеть переменную-->
<xsl:value-of select="$latest_date"/>
<!--Чтобы использовать переменную-->
/root/tag/date[text()=$latest_date]