2016-03-18 1 views
0

Итак, у меня есть XML-файл, который мне нужно для запуска нескольких преобразований для создания различных разделов веб-страницы с использованием цели ANT и трансформатора saxon9he. Есть много преобразований для запуска, поэтому они были разделены на отдельные файлы.Множественные преобразования XSLT на XML-файле с использованием Ant

До сих пор у меня есть это, которое отлично работает для файлов 1 преобразования:

<target name="transform"> 
    <xslt  
    basedir="INPUT/" 
    destdir="OUTPUT/ 
    includes="myfile.xml" 
    style="INPUT/XSLT/generateSection1.xsl" 
    classpath="saxon9he.jar;"> 

     <factory name="net.sf.saxon.TransformerFactoryImpl" /> 

    </xslt> 
</target> 

Я понимаю, что для того, чтобы запустить несколько файлов XSLT из этой цели я мог запустить один файл XSLT, который использует <xsl:import> для импорта всех других файлов, которые мне нужны, но мне было просто интересно, можно ли запускать все файлы XSLT в определенной папке, используя что-то вроде style="Input/XSLT/*.xsl", и если это повлияет на производительность?

+0

посмотреть на xmltask http://www.oopsconsultancy.com/software/xmltask/ – Daniele

+0

для всех, кто интересуется я решил это, используя for loop любезность библиотеки ant-contrib http://ant-contrib.sourceforge.net/ – Osher

ответ

0

Вы можете сделать это в Ant, но обратите внимание, что Ant-конвейеры никогда не будут суперэффективными, потому что задачи всегда работают с файлами, а не с объектами в памяти. Поэтому, если в нескольких преобразованиях используется тот же файл, что и вход, он будет обрабатываться несколько раз. Теоретически вы должны получить лучшую производительность из инструмента конвейера, который больше ориентирован на рабочие процессы XML, например. движок XProc, такой как Calabash. (Сказав это, я все время использую Ant, и это достаточно быстро для того, для чего я его использую.)