Как преобразовать вложенный XML в CSV? - PullRequest
0 голосов
/ 15 февраля 2020

Хотя это не строго XML в этой точке , мы стремимся преобразовать «список» во что-то, что будет работать для измельчения XML, так что это будет что-то вроде таблицы. Подходит для импорта в электронную таблицу или таблицу в базе данных SQL.

Как бы этот ввод:

  • человек
  • Джо
иск
alice

преобразуются в структуру типа:

joe phone1 phone2 phone3
sue cell4 home5
alice atrib6 x7 y9 z10 

Это имеет значение только для «имена» находятся в первом столбце, другие «атрибуты» - в любом из следующих столбцов CSV или аналогичных, или что-то экспортируемое как таковое CSV. Это не должно быть CSV, возможно, просто конвертируемым в такую ​​структуру, потому что BaseX очень хорошо экспортируется в CSV через GUI.

или, возможно, :

joe phone1 
joe phone2 
joe phone3
sue cell4 
sue home5  
alice atrib6 
alice x7 
alice y9 
alice z10 

Хотя я предпочитаю первое для этой спецификации c данных.

1 Ответ

3 голосов
/ 15 февраля 2020

Я думаю, что в другом вопросе вы уже получили предложение использовать windowing:

declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";

declare option output:method 'text';
declare option output:item-separator '
';

for tumbling window $group in ul/*
start $s next $n when $s[self::li] and $n[self::ul]
return
    tail($group) ! ($s || ',' || .)

https://xqueryfiddle.liberty-development.net/6qVSgeS

...