我有一个查询ftp://ftp.ncbi.nlm.nih.gov//biosample/biosample_set.xml.gz在Basex 9.5.1 中
for $bsattrib in doc(
'biosample_set'
)/BioSampleSet/BioSample/Attributes/Attribute
let $attribdata := data(
$bsattrib
)
let $attrib_name := data(
$bsattrib/@attribute_name
)
let $attrib_hn := data(
$bsattrib/@harmonized_name
)
let $bs := $bsattrib/../..
let $bsaccession := data(
$bs/@accession
)
group by $attrib_hn
order by count(
$bs
) descending
return <record>
<hname>{$attrib_hn}</hname>
<bs_count>{count($bs)}</bs_count>
</record>
给出
<record>
<hname/>
<bs_count>59840</bs_count>
</record>
<record>
<hname>gap_accession</hname>
<bs_count>39179</bs_count>
</record>
<record>
<hname>submitter_handle</hname>
<bs_count>39179</bs_count>
</record>
等等。
当我用包装时
declare option output:method "csv";
declare option output:csv "header=yes, separator=semicolon";
<csv>
在顶部和
</csv>
在底部,我得到
未声明变量:$attrib
Duh,我把<csv>
标签放错了的位置
return <csv><record>
<hname>{$attrib_hn}</hname>
<bs_count>{count($bs)}</bs_count>
</record></csv>