Относительный путь для xsl:import или xsl:include

Вполне нормально, что время выполнения может меняться, поскольку ваш компьютер, вероятно, выполняет много вещей (включая вашу ОС), а не только этот фрагмент кода, и это повлияет на тактовые частоты.

На компьютере, где потребление обработки очень стабильно, время выполнения должно оставаться аналогичным , хотя.

В вашем коде нет ничего плохого.

6
задан Mathias Müller 25 March 2014 в 16:20
поделиться

7 ответов

Первая попытка:

Я попытался включить script.xsl в качестве еще одного xml фрагмента и изменить оператор импорта любым способом, который только мог себе представить, но безуспешно.

Окончательное решение:

Так как абсолютный url для включения script.xsl работал с самого начала, моим окончательным решением было преобразование style.xsl в style.asp с правильным doctype. В этом файле я смог получить имя сервера, протокол и путь и переслать их в нужное место в операторе импорта, используя asp. Затем, когда этот файл был включен в mysscript.asp, он имел правильный абсолютный url для сервера. Это немного хакерская, но единственный способ, который я нашел, чтобы решить эту довольно запутанную ситуацию.

.
0
ответ дан 17 December 2019 в 20:36
поделиться

Текущий каталог для xsl:import, xsl:include, и документ () функция является каталогом, содержащим преобразование, которое использует их. Таким образом, xsl:import директива, чтобы Вы сказали, что используете, должна работать.

Единственная вещь, о которой я могу думать, который мог бы влиять на это: если Вы используете относительный путь, то, что файл был считанным непосредственно из файловой системы, в то время как при использовании абсолютного URI она получается от веб-сервера. Действительно ли возможно, что существует некоторая настройка безопасности, это препятствует тому, чтобы сценарии читали файлы в этом каталоге?

1
ответ дан 17 December 2019 в 20:36
поделиться

Я занялся бы этим путем выполнения Монитора Процесса Sysinternals. С этим выполнением инструмента можно на самом деле видеть, какие файлы сценарий пытается открыть, даже если они не существуют.

1
ответ дан 17 December 2019 в 20:36
поделиться

@Jon я думаю, что Вы очень близки..., но не были должны он быть...

<xsl:import href="/mysite/script.xsl"/>

... с ведущей наклонной чертой?

1
ответ дан 17 December 2019 в 20:36
поделиться

Действительно ли возможно, что "текущий каталог" в целях относительного пути мог бы быть местоположением Вашей ASP-страницы, не Вашего файла XSL? Другими словами, если Вы уже не имеете, Вы могли бы попробовать:

<xsl:import href="mysite/script.xsl"/>
0
ответ дан 17 December 2019 в 20:36
поделиться

Я часто сталкиваюсь с этой проблемой, потому что существует пользовательский сопоставитель URI, используемый библиотекой, которую я не вижу (или не знайте о том, потому что я не прочитал подходящую документацию.) Я не могу помнить, является ли это спецификацией или не, но в мире Сакса/Java, пользовательский сопоставитель URI получает первую трещину при попытке разрешить, что URI для включает/операторы импорта, а также документ () функция. Если это не может разрешить URI, сопоставитель URI по умолчанию дает ему попытку, которая обычно никогда не отсутствует, когда затем URI является абсолютным.

Так, это - вероятно, что-то в механизме ASP, который использует контекст управляемый сопоставитель URI на основе контекста приложения.

0
ответ дан 17 December 2019 в 20:36
поделиться

Вам нужна переменная, которая определяет approot или webroot при загрузке JS, Изображения или файлов CSS.

 <xsl:import href="{$approot}/somedir/script.xsl"/>

или если у Вас есть значение в XML,

 <xsl:import href="{/root/@approot}/somedir/script.xsl"/>
-1
ответ дан 17 December 2019 в 20:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: