#xpath #xslt-2.0 #saxon
#xpath #xslt-2.0 #saxon
Вопрос:
В моей таблице стилей XSLT я извлекаю значение текущего месяца, используя month-from-dateTime
вот так
<xsl:stylesheet version="2.0" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ...>
...
<xsl:value-of select="fn:month-from-dateTime(fn:current-dateTime())" />
Это возвращает 3
(для марта), но в соответствии с этой ссылкой XSL я бы ожидал, что она вернет значение с начальным нулем: 03
. Чего-нибудь мне не хватает? Я использую TransformerFactory
из Saxon9HE.
Комментарии:
1. Давным-давно у нас была даже «каноническая» ссылка, чтобы рекомендовать не использовать w3schools в качестве ссылки.
2. На самом деле она возвращает целое число, а не строку, которую xsl:value-of затем преобразует в текстовый узел, используя стандартные правила преобразования целых чисел в строку, которые, конечно, не включают добавление начальных нулей.
Ответ №1:
Согласно документации W3C
fn:month-from-DateTime(xs: DateTime(«1999-05-31T13:20:00-05:00»)) возвращает 5.
Итак, мои ожидания были неверными.
Ответ №2:
Вы можете отформатировать возврат как:
fn:format-number(fn:month-from-dateTime(xs:dateTime("1999-05-31T13:20:00-05:00")), '00')
она вернет 05