2015-03-17 11 views
-1

Я использую php XSLTProcessor для генерации моего html-кода из XML-файла через файл xsl. Это работает.XSLTPпроцессор: несколько xsl-файлов

Моя проблема - в какой-то момент файл xsl становится слишком большим, чтобы легко работать с ним, поэтому имеет смысл распространять некоторые части на внешние файлы. Но ни функция xsl: import, ни функция xsl: include не работают. Я думаю, причина в том, что у процессора xsl есть проблемы с путями, но я не уверен.

Внутри моего файла XSL является использовать это:

<xsl:import href="2nd_file.xsl"/> 

где 2nd_file.xsl находится в том же каталоге, исполняющего PHP.

Я получаю эту ошибку:

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: compilation error: file /local/path/to/first/xsl/main.xsl line 7 element import in /local/path/to/php/index.php on line 57 ---- line 57 in the php is: $proc->importStylesheet($xslDoc);

+1

Ваш вопрос непонятен. Что вы подразумеваете под «* ни xsl: import, ни функция xsl: include works *"? Покажите нам код, который вы попробовали. –

+0

внутри моего xsl-файла использует это: , тогда как этот файл находится в той же самой директории исполняющего php. Я получаю эту ошибку: Предупреждение: XSLTProcessor :: importStylesheet() [xsltprocessor.importstylesheet]: ошибка компиляции: файл /local/path/to/first/xsl/main.xsl строка 7 импорт элемента в/local/путь/в/php/index .php в строке 57 ---- строка 57 в php: $ proc-> importStylesheet ($ xslDoc); –

+1

Пожалуйста, не публикуйте в комментариях - вместо этого отредактируйте свой вопрос. –

ответ

1

/локальный/путь/к/первым/XSL/где main.xsl есть, но /local/path/to/php/index.php где ваш импорт является. Ваша таблица стилей ожидает, что корневой URL будет/local/path/to/first/xsl /. Если вы помещаете листы туда, они должны работать.

Если вы используете XSLT2, вы можете вызвать base-uri(), чтобы показать, что XSLT работает.

Смежные вопросы