1

XML虽然在这一点上并不严格,但希望将“列表”转换为可用于XML切碎的东西,因此更像是一张桌子。适合导入电子表格或SQL数据库中的表格。

这个输入如何:

  • 人们
    • 电话1
      电话2
      电话3
  • 起诉
    • 细胞4
      主页5
  • 爱丽丝
    • 属性6
      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 

虽然对于这个特定的数据,我更喜欢前者。

4

1 回答 1

4

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

于 2020-02-15T18:59:48.923 回答