Использование модуля даты и времени EXSLT в XSLT 1.0 приводит к неизвестной ошибке - PullRequest
2 голосов
/ 22 мая 2010

Я добавил модуль даты и времени EXSLT в свой файл XSLT 1.0, объявив:

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ... xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date">

Это не влияет на мою страницу, но когда я пытаюсь назвать фактическую дату с помощью:

<xsl:value-of select="date:date-time()"/>

При загрузке моей страницы появляется сообщение «Ошибка загрузки таблицы стилей: произошла неизвестная ошибка ()». У кого-нибудь есть предложения относительно того, чего мне не хватает? Заранее спасибо!

1 Ответ

2 голосов
/ 22 мая 2010

но когда я пытаюсь назвать фактический дата с:

<xsl:value-of select="date:date-time()"/>

Я получаю «Ошибка загрузки таблицы стилей: сообщение об ошибке неизвестно () " при загрузке моей страницы

Это означает, что конкретный процессор XSLT, который вы используете, не поддерживает EXSLT (или только модуль даты и времени EXSLT).

Вот небольшое преобразование :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:date="http://exslt.org/dates-and-times"
 >
 <xsl:output method="text"/>

 <xsl:template match="/">
   <xsl:value-of select="date:date-time()"/>
 </xsl:template>
</xsl:stylesheet>

при применении к любому документу XML (не используется) с процессором Saxon 6.5.4 XSLT 1.0 получается правильный результат :

2010-05-22T12:49:44-07:00

Решение :

Либо используйте процессор XSLT 1.0, который реализует EXSLT, либо передайте текущую дату-время в качестве параметра для преобразования.

Если используется XSLT 2.x, просто используйте функцию XPath 2.0 current-dateTime().

...