我想从表中提取列的所有值,确定这些值的最大值,然后返回该值。
这就是我的尝试:
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对我来说是新手,无法弄清楚如何做到这一点......
答案 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>