Есть ли способ применения XSLT к файлу XML без файла XML
имея явную ссылку на файл XSLT?
Конечно. На самом деле спецификация XSLT вообще не опирается (не упоминает) на файл XML, имеющий ссылку на таблицу стилей XSLT для его обработки .
Таким образом, один и тот же XML-файл может быть обработан многими различными XSLT-преобразованиями.
В XSLT 2.0 и более поздних версиях даже для преобразования XSLT не требуется применять соответствующий документ XML.
Как это можно сделать ?
Краткий ответ : Это зависит от реализации - прочитайте соответствующую документацию по процессору XSLT (например, XslCompiledTransform для .NET, Saxonica для Saxon, ... и т. Д.).
Кроме того, почти каждый XSLT-процессор имеет утилиту командной строки для вызова преобразования из окна консоли - снова проверьте соответствующую документацию ( msxsl.exe для MSXML, nxslt.exe для XslCompiledTransform, ... и т. Д.)
Вот несколько строк команд для XSLT-процессоров, которые я использую :
Это вызывает процессор MSXML 3:
msxsl.exe %xml% %xsl% -o %out% -u '3.0' -t %param[ name="value"]%
Это вызывает процессор MSXML 4:
msxsl.exe %xml% %xsl% -o %out% -u '4.0' -t %param[ name="value"]%
Это вызывает процессор MSXML 6:
msxsl.exe %xml% %xsl% -o %out% -u '6.0' -t %param[ name="value"]%
Это вызывает .NET XslCompiledTransform:
nxslt2.exe %xml% %xsl% -t -o %out% %param[ name="value"]%
Это вызывает AltovaXML (XML-SPY) для XSLT 10:
AltovaXML.exe -xslt1 %xsl% -in %xml% -out %out%%param[ name="value"]%
Это вызывает AltovaXML (XML-SPY) для XSLT 2.0:
AltovaXML.exe -xslt2 %xsl% -in %xml% -out %out%%param[ name="value"]%
Это вызывает Saxon 9.x (для XSLT 2.0):
java.exe -Xms512M -Xmx512M -jar C:\xml\Parsers\Saxon\Ver.9.1.0.5\J\saxon9.jar -t -repeat:1 -o %out% %xml% %xsl% %param[ name=\"value\"]%
Это вызывает XQSharp (XSLT 2.0):
XSLT.exe -s %xml% -o %out% -r 1 -t %xsl% %param[ name="value"]%
Во всем вышеперечисленном %xml%
- это путь к файлу XML, %xsl%
- это путь к первичному файлу XSLT, %out%
- это путь к файлу, который будет содержать выходные данные преобразования.
%param[ name="value"]%
- список спецификаций параметров name = value
, и его использование не обязательно.