一系列项的XQuery子字符串

时间:2015-03-13 15:08:11

标签: substring max xquery

我想从表中提取列的所有值,确定这些值的最大值,然后返回该值。

这就是我的尝试:

let $abc := doc("file:///some_local_file")//AOSCAT_MetricDetail//table[@class="pretty-table"]//tr/td[13]
return <li>{ fn:max(fn:substring($abc,1,1)) }</li>

但是fn:substring无法处理多个项目的序列。

所以我尝试了这个:

let $set_all_mbd := doc("file:///some_local_file")//AOSCAT_MetricDetail//table[@class="pretty-table"]//tr/td[13]
for $xyz in $set_all_mbd
let $abc := fn:substring($xyz,1,1)
return <li>{ fn:max($abc) }</li>

虽然返回表格的每一行,但我只想返回一个值。

我认为这很简单,但XQuery对我来说是新手,无法弄清楚如何做到这一点......

1 个答案:

答案 0 :(得分:1)

如果您想对序列中的每个项目应用substring,请尝试

let $abc := doc("file:///some_local_file")//AOSCAT_MetricDetail//table[@class="pretty-table"]//tr/td[13]
return <li>{ max($abc/substring(.,1,1)) }</li>

(未测试的)。

如果这不起作用,那么你肯定可以使用明确的for

let $abc := doc("file:///some_local_file")//AOSCAT_MetricDetail//table[@class="pretty-table"]//tr/td[13]
return <li>{ max(for $x in $abc return substring($x,1,1)) }</li>