XSLT для преобразования xml с повторяющимися братьями и сестрами в плоский файл

StackOverflow https://stackoverflow.com/questions/8891042

Вопрос

У меня есть XML, как показано ниже:

родовое слово

Мне нужно преобразовать его в плоский файл. Для этого я написал следующий xsl

родовое слово

итак, вывод должен быть
«HDR»; «Текст»; «20120112045620»; «F»
"GL"; "PDA"; "People Status Global"; "словарь терминов"
«GL»; «КПК»; «Глобальный статус людей»; «Глобальный обновленный статус людей»
"GL"; "КПК"; "Глобальный статус людей"; "словарь терминов"
«GL»; «КПК»; «Глобальный статус людей»; «Глобальный статус людей обновлен»
"GL"; "PDI"; "People Status Global"; "словарь терминов"
«GL»; «PDI»; «Глобальный статус людей»; «Глобальный обновленный статус людей»
"GL"; "PDI"; "Global People Status"; "словарь терминов"
«GL»; «PDI»; «Глобальный статус людей»; «Глобальный обновленный статус людей»
«GL»; «GLB»; «People Status Global»; «словарь терминов»
"GL"; "GLB"; "Глобальный статус людей"; "Глобальный обновленный статус людей"
"GL"; "GLB"; "Глобальный статус людей"; "словарь терминов"
«GL»; «GLB»; «Глобальный статус людей»; «Глобальный статус людей обновлен»
«ФТР»; 12

с моим xsl я получаю одну строку:
«GL»; «PDAPDIGLB»; «Глобальный статус людей»; «Словарь терминов: глобальный статус людей»

И строка заголовка:
«HDR»; «PIGLSSTD»; «20120112045620»; «F»:
должен быть добавлен в начале вместе со строкой нижнего колонтитула
"FTR";

внизу.

Это было полезно?

Решение

Вам нужно что-то вроде этого :

родовое слово

когда это преобразование применяется к предоставленному XML-документу :

родовое слово

Получен желаемый правильный результат :

родовое слово

Объяснение : вы хотите выводить данные только после того, как сформирована полная строка, а не раньше.

Обновление : OP работает в среде, в которой отключена функция document().Ему также нужны верхний и нижний колонтитулы.

В этом случае теперь можно использовать слегка измененное преобразование (с использованием функции расширения exslt:node-set()):

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top