如何将嵌套的XML转换为CSV?

问题描述 投票:0回答:1

虽然不是严格地XML处的this point,但希望将“列表”转换为适用于XML分解的内容,因此更像是表格。适用于导入到SQL数据库中的电子表格或表格。

如何输入:

  • 人民
    • phone1
      phone2
      phone3
  • 起诉
    • cell4
      home5
  • alice
    • atrib6
      x7
      y9
      z10

转换为类似的结构:

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 

尽管我更喜欢前者用于此特定数据。

xml-parsing xquery basex xmltable flwor
1个回答
0
投票

我认为在另一个问题中,您已经获得使用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

© www.soinside.com 2019 - 2024. All rights reserved.