Я пытаюсь преобразовать XML в CSV, используя XSLT с версией 2.0. Но я получаю ошибку компиляции при использовании метода date-date в XSLT. Ниже ошибка:Получение ошибки компиляции при использовании метода format-date() в XSLT
Error checking type of the expression 'funcall(format-date, [variable-ref(dt/string), literal-expr([D01]/[M01]/[Y0001])])'.
FATAL ERROR: 'Could not compile stylesheet'.
XSLT код:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:func="http://exslt.org/functions" xmlns:date="http://exslt.org/dates-and-times"
extension-element-prefixes="date" date:doc="http://www.exslt.org/date">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:variable name="dt" select="'2013-04-04'"/>
<xsl:value-of select="format-date($dt, '[D01]/[M01]/[Y0001]')" />
<xsl:value-of select="format-date(current-date(), '[D01]/[M01]/[Y0001]')" />
</xsl:template>
</xsl:stylesheet>
Получая ту же ошибку даже после ее преобразования на дату, я получаю ту же ошибку, когда я использую «current-date()». Я не уверен, что я что-то упустил. Я получаю эту ошибку компиляции, когда пытаюсь использовать функции даты в XSLT. Без функций даты мой XSL-код работает нормально. Я использую версию 2.0 – Jyothi
Возможно, вы не используете версию 2.0. Иногда люди воображают, что просто писать версию = "2.0" в таблице стилей автоматически превратит XSLT-процессор в процессор 2.0. Как вы выполняете преобразование? –
Я использую трансформатор «javax.xml.transform» с кодом Java. Я хочу преобразовать время даты, возвращенное из метода «System.currentTimeMillis()», в формат, который можно читать, например «« MM/dd/yyyy hh: mm: ss a »». Значение, возвращаемое из «System.currentTimeMillis()» (например: 1364969832764), записывается в XML, а затем я пытаюсь преобразовать этот формат даты в формат XSLT. – Jyothi