Как мы можем использовать 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")
Это немного большой для использования в нескольких местах, но пока вы можете поместить это в шаблон, который не должен иметь большого значения.