项目序列的 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 对我来说是新的,不知道该怎么做......

如果要将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>

最新更新