使用CSV序列化包装时未声明的变量



我有一个查询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>

最新更新