В версии 1 XSLT существует ли функция кодирования URL? Мне нужно что-то подобное функции encodeURIComponent в JavaScript?
Наблюдение, поскольку это не возможно, поскольку я использую платформу.NET в качестве XSLT, применяется к странице Sharepoint. Есть ли способ кодировать эту покупку, называя JavaScript, кодируют функцию в XML, отрывке ниже:
<xsl:template name="BuildLink">
<xsl:param name="PrimarySubject" />
<xsl:text>?PrimarySubject=</xsl:text>
<xsl:value-of select="$PrimarySubject" />
</xsl:template>
Спасибо,
, вы можете использовать JScript, встроенный в XSLT .. .
<msxsl:script language="JScript" implements-prefix="custom">
function uriencode(string) {
return encodeURIComponent(string);
}
</msxsl:script>
и назовите его как custom: uriencode (url_to_encode)
Сначала вам нужно будет определить пространство имен, добавив к тегу
xmlns: msxsl = "urn: schemas-microsoft-com: xslt" xmlns: custom = "http: //youdomain.ext/custom"
[обновление]
URL-адрес, который я помещаю для пользовательского пространства имен, может быть любым .. это просто уникальный идентификатор ..
{{1 }} ( ссылка заключает, что это менее запутанно, если вы не используете URL-адрес в качестве идентификатора ..)
[udpdate 2]
Добавлена некоторая информация.
Если вы используете MSXML6, вам необходимо вручную разрешить создание сценариев в XSLT с помощью свойства AllowXsltScript
.. ( ссылка )
{{ 1}} В зависимости от того, как вы загружаете xslt и его настройки, посмотрите примеры в Блоки сценариев с использованием msxsl: script о том, как разрешить сценарии
Такого нет. XSLT не имеет знаний об URL и HTML.
В зависимости от используемого языка и платформы вы можете использовать расширение XSLT, которое делает это.
Вы можете , при определенных обстоятельствах используйте EXSLT (расширения, предоставляемые анализатором): FAQ по XSLT Дэйва Поусона для этого.
Однако XSLT завершен по Тьюрингу, поэтому теоретически можно написать базовый кодировщик URL в самом XSLT (я бы не стал пробовать).
Эти таблицы стилей XSLT 1.0 могут использоваться для кодирования / декодирования URL:
Описание: только очень небольшое подмножество символов ASCII можно безопасно встроен в URI. Персонажи снаружи этот набор должен быть экранирован с помощью так называемая "кодировка URL" или «% -эскейпинг». Персонажи преобразовано в байты согласно некоторым кодировка (ASCII, если возможно) и те каждый байт записывается как '%' за которым следуют 2 шестнадцатеричные цифры. В кодировка, использованная в качестве основы для этого преобразование может быть любым, но имеет тенденцию быть продиктованным контекстом, в котором URI используется. Недавние и будущие стандарты используют UTF-8, но устаревшие приложения, в том числе многие широко распространенный, на стороне сервера обработчики данных HTML-формы предполагают ISO-8859-1.
Например, приветствие "¡Hola, César! "Можно встроить в URI, если он записывается следующим образом: % A1Hola% 2C% 20C% E9sar !. (... предполагая ISO-8859-1 как основа для кодирования. Если бы он был основан на UTF-8, он бы быть% C2% A1Hola% 2C% 20C% C3% A9sar!).
Демонстрационная версия url-encode.xsl кодирует URL-адрес произвольная строка, переданная как параметр с именем iso-string. Предполагает ISO-8859-1 станет основой для Кодировка URL. Он должен быть совместимым с любым процессором XSLT 1.0.
Расшифровка ISO-8859-1 на основе Строка в кодировке URL использует аналогичный техника. См. Url-decode.xsl для демо. Его параметр url - это строка быть декодированным.