xquery-如何计算一个字符串在另一个字符串中出现的次数+;第一个和最后一个occ。这根绳子的长度

xquery-如何计算一个字符串在另一个字符串中出现的次数+;第一个和最后一个occ。这根绳子的长度,xquery,Xquery,我试图从XHTML文档中提取一些名称-- 现在我已经知道了如何在一段XQuery代码中提取所有这些名称-- 例如—— 名字 我想提取名字/中间名/姓氏,我了解如何使用一些字符串函数——首先我想知道的是,上面其中一个名字中出现空格的次数,以及空格第一次和最后一次出现的位置。如何做到这一点?多种解决方案之一: let $doc := <div class="names"> <b>Names</b> <a href="http://na

我试图从XHTML文档中提取一些名称--

现在我已经知道了如何在一段XQuery代码中提取所有这些名称--

例如——


名字
我想提取名字/中间名/姓氏,我了解如何使用一些字符串函数——首先我想知道的是,上面其中一个名字中出现空格的次数,以及空格第一次和最后一次出现的位置。如何做到这一点?

多种解决方案之一:

let $doc :=
  <div class="names">
    <b>Names</b>
    <a href="http://name1.com">A B.C D</a>
    <a href="http://name1.com">E F G</a>
    <a href="http://name1.com">H I</a>
  </div>
for $a in $doc//a
return
  let $text := $a/text()
  let $spaces := index-of(string-to-codepoints($a), 32)
  return <result text="{ $text }" spaces="{ count($spaces) }"
    first="{ $spaces[1] }" last="{ $spaces[last()] }"/>
let$doc:=
名字
对于$doc//a中的$a
返回
让$text:=$a/text()
设$spaces:=的索引(字符串到代码点($a),32)
返回
但是,它可能更容易使用,而不是处理字符位置。

我还有一个查询--如何获得中间的文本(即被“first”和“last”包围)--我是否使用了类似{$spaces[gt1和lelast()]}的东西--看起来不正确??或者我可以在通过拆分文本获得的不同片段上使用循环(按空格??请在此帮助我:)
let $doc :=
  <div class="names">
    <b>Names</b>
    <a href="http://name1.com">A B.C D</a>
    <a href="http://name1.com">E F G</a>
    <a href="http://name1.com">H I</a>
  </div>
for $a in $doc//a
return
  let $text := $a/text()
  let $spaces := index-of(string-to-codepoints($a), 32)
  return <result text="{ $text }" spaces="{ count($spaces) }"
    first="{ $spaces[1] }" last="{ $spaces[last()] }"/>