#bash #xslt #parameters #xslt-1.0 #xalan
#bash #xslt #параметры #xslt-1.0 #xalan
Вопрос:
Я пытаюсь выполнить обработку xml в командной строке с помощью xslt с помощью командной строки xalan:
(http://manpages.ubuntu.com/manpages/xenial/man1/xalan.1.html)
Используемая команда :
xalan -q -param name_param 'something relevant' -xsl use.xsl -in use.xml
Используемая версия Xalan :
Xalan version 1.11.0
Xerces version 3.2.0
Метод проб и ошибок
Я пробовал одинарные и двойные кавычки в команде и пытался получить доступ к параметру в xslt as, но все же я не могу получить доступ к параметрам, которые я передаю в командной строке
Я хочу иметь возможность использовать параметры, переданные внутри use.xsl для обработки use.xml
Комментарии:
1. Есть ли у вашего XSLT глобальный
<xsl:param name="name_param"/>
? Каков именно результат, когда вы говорите, что «не можете получить доступ к параметрам»?
Ответ №1:
http://xalan.apache.org/xalan-c/usagepatterns.html#xalantransformer говорит: «Утилита командной строки Xalan в настоящее время поддерживает только текстовое строковое значение для параметра таблицы стилей верхнего уровня. Для определения значения текстовой строки требуются одинарные кавычки. » и «Если строковое выражение содержит пробелы или другие символы, которые перехватывает оболочка, сначала заключите строку в одинарные кавычки, чтобы Xalan-C интерпретировал ее как строковое выражение, а затем заключите результирующую строку в двойные кавычки, чтобы оболочкаинтерпретирует его как один аргумент «. и приводит пример Xalan -p param1 "'string expression'"foo.xml foo.xsl
. Я не проверял это, но это слишком долго, чтобы вписаться в комментарий, поэтому публикуйте его в качестве ответа.
Комментарии:
1. Отличные результаты!