XSLT для преобразования xml с повторяющимися братьями и сестрами в плоский файл
-
29-10-2019 - |
Вопрос
У меня есть 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()
):