У мене є кілька XML-файлів з різною структурою без XSD, і мені потрібно конвертувати їх у CSV, включаючи заголовки. Заголовки повинні бути "крапкою" конкатенації шляху для одного елемента. Наприклад:
<root>
<item>
<subitem>
foo
</subitem>
etc..
заголовок буде: root.item.subitem
Чи є якийсь "загальний" перетворювач на CSV в XSLT або альтернативи самому XSLT?
1
Вам потрібно набагато ретельніше уточнити, який діапазон входів ви хочете обробити та який вихід ви хочете отримати з них. Щоб взяти випадковий приклад, як би ви очікували, що дані в stackoverflow.com/questions/38886913/… виглядатимуть при перетворенні в CSV?
—
Майкл Кей
Єдине, що я можу сказати, це те, що мені не потрібно піклуватися про будь-який атрибут для одного тегу. Мені потрібно лише значення тексту, витягнуте з одного аркуша. Я не знаю всіх імен тегів та потенційної структури для одного.
—
Случайно
XML є ієрархічним. Документ, що представляє питання ЗО, скажімо, містив би одне запитання, багато відповідей, і кожне питання та відповідь мали б багато коментарів. Цю структуру непросто представити у CSV. Якщо ви не знаєте, як би ви представляли ієрархічну структуру в CSV, ви не можете створити загальний перетворювач XML в CSV.
—
Майкл Кей
Добре, якщо ви рекурсивно ізолюєте всі різні xpaths, то застосуйте їх до xml self, ви повинні це зробити (не враховуючи атрибутів)
—
Randomize
@Randomize: Що про змішані елементи? Елементи, що містять як текст, так і піделементи. Такий, як
—
Eiríkr Útlendi
<item>This has text <a>and</a> other things.<sub_item>Hello!</sub_item></item>
Це було б правильним безладом, використовуючи згаданий вами підхід.