Как мы можем использовать EXSLT, не загружая его источник?

XSLTSL, кажется, утверждает, что мы можем использовать EXSLT без загрузки его источника:

Импортируйте или включите либо основную таблицу стилей, либо модуль таблиц стилей, который вы хотите использовать, непосредственно с веб-сайта библиотеки; http://xsltsl.sourceforge.net/modules/. Каталог модулей всегда содержит последнюю стабильную версию.

Я пробовал это:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href="http://xsltsl.sourceforge.net/modules/string.xsl"/>
  <xsl:output method="text" indent="yes"/>

  <xsl:template match="/">
    <xsl:call-template name="str:to-upper">
      <xsl:with-param name="text">hello world</xsl:with-param>
    </xsl:call-template>
  </xsl:template>
</xsl:stylesheet>

Но это не работает. Кажется, я не могу использовать EXSLT без загрузки его источника.

Есть ли возможность использовать EXSLT без загрузки исходного кода?

2 ответа

Решение

Вы не используете библиотеку правильно. Посмотрите на инструкции здесь.

После того как вы скачали библиотеку, вам необходимо:

1) Добавьте импорт в ваш xsl-файл:

<xsl:import href="string.xsl"/>

2) Добавьте пространство имен:

xmlns:str="http://xsltsl.org/string"

3) Назовите шаблон так:

<xsl:template match="foo">
  <xsl:call-template name="str:to-upper">
    <xsl:with-param name="text">hello world</xsl:with-param>
  </xsl:call-template>
</xsl:template>

Это будет производить HELLO WORLD,

ОБНОВИТЬ:

Нет, вам не нужно скачивать библиотеку локально. Вы можете просто сослаться на string.xsl используя полный URL.

Как объясняется в разделе Использование библиотеки, вам нужно скачать ее и

<xsl:import href="stdlib.xsl"/>

импортируйте его в свой скрипт xslt.

Кстати, в качестве альтернативы вы также можете использовать функцию перевода xslt:

translate(value,"abcdefghijklmnopqrstuvwxyz","ABCBCDEFGHIJKLMNOPQRSTUVWXYZ")

Это немного большой для использования в нескольких местах, но пока вы можете поместить это в шаблон, который не должен иметь большого значения.

Другие вопросы по тегам