объединить несколько файлов XML с помощью синтаксического анализатора STAX

У меня есть несколько XML-файлов. Все узлы похожи. Пожалуйста, приведите пример, как объединить XML-файлы с помощью STAX Parser и применить к нему таблицу стилей.


person user2779221    schedule 27.10.2014    source источник
comment
Как этот вопрос связан с другим вопросом твой?   -  person Mathias Müller    schedule 27.10.2014
comment
Я пытался выполнить это требование с помощью таблицы стилей. Но позже решил использовать анализатор STAX, потому что каждый раз имена файлов будут меняться.   -  person user2779221    schedule 30.10.2014


Ответы (1)


Если вы хотите применить XSLT к нескольким документам XML, тогда (с чистым XSLT, я не знаю о Stax), вы можете просто использовать функцию document (XSLT 1.0 и 2.0) или функцию collection (с XSLT 2.0), например.

<xsl:template match="/">
  <root>
    <xsl:apply-templates select="document('file1.xml')/* | document('file2.xml')/* | document('file3.xml')/*"/>
  </root>
</xsl:template>

затем добавьте шаблоны, соответствующие именам элементов в документах, которые вы хотите обработать.

person Martin Honnen    schedule 27.10.2014
comment
Это работает для фиксированных имен файлов. но мой вариант использования отличается, имена файлов будут меняться в зависимости от задания, которое мы собираемся запустить. - person user2779221; 30.10.2014
comment
Если вы используете процессор XSLT 2.0, такой как Saxon 9, вы сможете использовать функцию collection для загрузки файлов из каталога или папки. Дайте нам знать, подходит ли вам этот вариант. - person Martin Honnen; 30.10.2014
comment
Спасибо. Это работает для меня. Пожалуйста, дайте мне полный пример, если это возможно. - person user2779221; 04.11.2014
comment
Я выполняю очень похожее действие, похожее на то, что делает спрашивающий... Любопытно, как к этому подойти. - person rmarq423; 13.02.2015