Получить имя файла с помощью xsl

Как я могу получить имя файла с помощью xsl 1.0?

пробовал

<xsl:value-of select="base-uri()" />

но есть "Неустранимая Ошибка! Не удалось найти функцию: base-uri"

2 ответов


нет такой функции XPath или расширения XSLT для функции XPath, чтобы сделать это в XSLT v1 / XPath v1.

вполне возможно, что файла не будет, и даже если у движка XSLT нет причин иметь это имя файла (подумайте о загрузке содержимого файла в буфер, разборе буфера в DOM, а затем передаче DOM процессору XSLT).

вам нужно будет передать имя файла в процессор, чтобы быть доступным в качестве параметра в преобразиться.


base-uri() является стандартной функцией XPath 2.0, поэтому при запуске XSLT 1.0 эта функция будет недоступна.

в XSLT 1.0 имя файла (чего?) может передаваться как параметр для преобразования.

обратите внимание что не всегда возможно создать имя файла для таблицы стилей или для XML-документа - либо или оба могут находиться в памяти без связанного файла.

это не ясно из проблема, какое имя файла должно быть создано.

вот как найти имена файлов в XPath 2.0 / XSLT 2.0:

имя файла текущего документа:

 base-uri()

имя файла текущего модуля таблицы стилей:

  base-uri(document(''))