XSLT Добавить к итоговому документу - PullRequest
0 голосов
/ 13 июля 2009

У меня есть сценарий XSLT, который я использую для генерации кода, где я обрабатываю несколько входных XML-файлов и выводю файлы в код Javascript. Для каждого входного XML-файла я вывожу один файл Javascript.

Итак, у меня будут следующие файлы / преобразования:

view1.xml -> view1.js
view2.xml -> view2.js
...

Теперь у меня есть требование также создать один дополнительный файл во время обработки XSL, где мне нужно будет добавить информацию о каждом обрабатываемом входном файле в общий файл Javascript.

Итак, теперь у меня будет:

view1.xml -> view1.js / append to common.js 
view2.xml -> view2.js / append to common.js
...

Мой вопрос: возможно ли добавить файл в процесс обработки нескольких входных файлов? В настоящее время я использую Saxon 9.1.0.7, и я посмотрел на элемент xsl: result-document, но это, кажется, перезаписывает любой ранее записанный контент.

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 июля 2009

Нет, я не думаю, что вы можете добавить к существующему (даже не XML) файл из XSLT.

С другой стороны, добавление результата в файл легко выполняется в среде, в которой выполняется преобразование. Будь то язык программирования или оболочка, объединение текстовых файлов должно быть тривиальным упражнением. Я предлагаю вам сделать это там, вместо того, чтобы пытаться найти какой-то способ согнуть XSLT, чтобы сделать это.

0 голосов
/ 13 июля 2009

В XSLT есть функция "document ()". Вы можете использовать это для обработки нескольких входных файлов xml из одного XSLT и, следовательно, одного вывода, я не уверен, поможет ли это в вашем случае.

что-то вроде.

 <xsl:apply-templates select="document('doc1.xml')"/>
 <xsl:apply-templates select="document('doc2.xml')"/>
 <xsl:apply-templates select="document('doc3.xml')"/>

 <xsl:template match='nodeX">do something</xsl:template>
 <xsl:template match='nodeY">do something else</xsl:template>
...