Я использую date:format-date template EXSLT file Я использую XSLT 1.0 и MSXML3.0 в качестве процессора.Дата EXSLT: формат даты шаблон без документа() XSLT 1.0
Моя дата: декларация форматно-дата шаблонного EXSLT файла является:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:str="http://exslt.org/strings"
extension-element-prefixes="msxsl date str">
...
</xsl:stylesheet>
Я не могу использовать документ (функцию) в связи с ограничениями 3-й партии. Так что я изменил месяцы и дни (аналогично) из XML сниппета:
<date:months>
<date:month length="31" abbr="Jan">January</date:month>
<date:month length="28" abbr="Feb">February</date:month>
<date:month length="31" abbr="Mar">March</date:month>
<date:month length="30" abbr="Apr">April</date:month>
<date:month length="31" abbr="May">May</date:month>
<date:month length="30" abbr="Jun">June</date:month>
<date:month length="31" abbr="Jul">July</date:month>
<date:month length="31" abbr="Aug">August</date:month>
<date:month length="30" abbr="Sep">September</date:month>
<date:month length="31" abbr="Oct">October</date:month>
<date:month length="30" abbr="Nov">November</date:month>
<date:month length="31" abbr="Dec">December</date:month>
</date:months>
переменной:
<xsl:variable name="months">
<month length="31" abbr="Jan">January</month>
<month length="28" abbr="Feb">February</month>
<month length="31" abbr="Mar">March</month>
<month length="30" abbr="Apr">April</month>
<month length="31" abbr="May">May</month>
<month length="30" abbr="Jun">June</month>
<month length="31" abbr="Jul">July</month>
<month length="31" abbr="Aug">August</month>
<month length="30" abbr="Sep">September</month>
<month length="31" abbr="Oct">October</month>
<month length="30" abbr="Nov">November</month>
<month length="31" abbr="Dec">December</month>
</xsl:variable>
И соответственно, я изменил код, который первоначально использует документ() от:
[из месяца обработка бит таблицы стилей EXSLT]
<xsl:variable name="month-node" select="document('')/*/date:months/date:month[number($month)]" />
использовать функцию MSXML3.0 набор узлов:
<xsl:variable name="month-node" select="msxsl:node-set($months)/month[number($month)]" />
Поэтому я предположил, что это будет работать.
В соответствии с инструкциями EXLT «Строка шаблона формата интерпретируется, как описано для JDK 1.1 SimpleDateFormat class.» [Я использовал текущую версию].
Я указываю месяц в соответствии с SimpleDateFormat class как «dd MMMMM yyyy», так что месяц будет полным месяцем, например, январем. Но это не работает :(Я просмотрел таблицу стилей EXSLT, и у нее есть логика для этого. Также есть логика для отображения названия недели в течение дня с использованием шаблона «E», который не работает для меня. Может быть, меняется с помощью документа() к переменным преломил.
бы очень признателен за любую помощь.
Большое спасибо!
Примеры
<xsl:call-template name="date:format-date">
<xsl:with-param name="date-time" select="'2010-07-01'"/>
<xsl:with-param name="pattern" select="'dd MMMMM yyyy'" />
</xsl:call-template>
Как я понял из SimpleDateFormat class Docs это должно привести к 01 июля 2010 и что я получаю
<xsl:call-template name="date:format-date">
<xsl:with-param name="date-time" select="'2010-07-01'"/>
<xsl:with-param name="pattern" select="'EEE, dd MMMMM yyyy'" />
</xsl:call-template>
Это должно привести к пн, 01 июля 2010 и что я получаю , 01 07 2010
@Welbog: Я думаю, что это так. Я отредактировал структуру в $ month, чтобы использовать ее без document(). Я получаю результаты, но не точно сформирован правильно. Я добавил примеры в вопрос. – DashaLuna