跳转到内容

XQuery/返回最长字符串

来自维基教科书,开放的书籍,开放的世界

您希望在一系列字符串中找到最长字符串。

示例程序

[编辑 | 编辑源代码]
xquery version "1.0";

declare function local:max-length($string-seq as xs:string*) as xs:string+ {
  let $max := max (for $s in  $string-seq  return string-length($s))
  return $string-seq[string-length(.) = $max]
};

let $tags :=
<tags>
   <tag>Z</tag>
   <tag>Ze</tag>
   <tag>Zee</tag>
   <tag>Zen</tag>
   <tag>Zenith</tag>
   <tag>nith</tag>
   <tag>ith</tag>
   <tag>Zenth</tag>
</tags>

return
<results>
   <max-string>{local:max-length(($tags/tag))}</max-string>
</results>


执行

<results>
   <max-string>Zenith</max-string>
</results>

此 XQuery 创建一个本地函数,它接受零个或多个字符串

$string-seq as xs:string*

并返回一个或多个字符串

as xs:string+

它使用 max() XPath 函数,该函数查看一系列值并返回最高值。

请注意,如果输入集中有多个字符串具有相同的最大长度,它将返回所有最大长度的字符串。

如果您只想返回第一个,请在返回表达式中添加“[1]”

return $string-seq[string-length(.) = $max][1]

华夏公益教科书