我想从表中提取列的所有值,确定这些值的最大值,然后返回该值。
这是我尝试过的:
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 对我来说是新的,不知道该怎么做......
如果要将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>