Как мы можем использовать EXSLT, не загружая его источник? - PullRequest
2 голосов
/ 09 июня 2011

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 голос
/ 09 июня 2011

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

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

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

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

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

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

1 голос
/ 09 июня 2011

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

После загрузки библиотеки вам необходимо:

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.

...