跳轉到內容

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]

華夏公益教科書