xQuery数组[*]?

时间:2016-11-09 09:42:54

标签: sql xml-parsing db2 xquery xquery-sql

SELECT
    XMLQUERY    ('$x/test/xml[1]/data(@type)' PASSING XMLCOLUMN as "x") type,
    XMLQUERY    ('$x/test/xml[1]/text()' PASSING XMLCOLUMN as "x") text
FROM 
    XML

我想选择父节点的所有子节点。我在考虑这样的事情:

SELECT
    XMLQUERY    ('$x/test/xml[*]/data(@type)' PASSING XMLCOLUMN as "x") type,
    XMLQUERY    ('$x/test/xml[*]/text()' PASSING XMLCOLUMN as "x") text
FROM 
    XML

编辑: XML:

<test>
    <xml type = 1>a</xml>
    <xml type = 2>b</xml>
    <xml type = 3>c</xml>
    <xml type = 4>d</xml>
    <xml type = 5>e</xml>
    ...
</test>

预期结果:

type | text
-----|-----
1    | a
2    | b
3    | c
4    | d
...

1 个答案:

答案 0 :(得分:1)

尝试基于XMLTABLE的以下内容:

import understand
import sys

def sortedEntities(db):
  for ent in sorted(db.ents(),key= lambda ent: ent.name()):
    print (ent.name(),"  [",ent.kindname(),"]",sep="",end="\n")

if __name__ == '__main__':
  # Open Database
  args = sys.argv
  db = understand.open(args[1])
  sortedEntities(db)

它应该返回一个具有所需值和结构的表。