-1

XHTML ドキュメントからいくつかの名前を抽出しようとしています -

これで、これらすべての名前を 1 つの XQuery コードで抽出する方法がわかりました。

例えば ​​-

<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>

名、ミドルネーム、姓を抽出したいのですが、いくつかの文字列関数の使用方法を理解しています。最初に知りたいのは、上記の名前の 1 つに含まれるスペースの回数と位置です。スペースの最初と最後の出現。どうすればいいですか?

4

1 に答える 1

0

多くの解決策の 1 つ:

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()] }"/>

ただし、文字位置を操作する代わりに、正規表現を使用する方が簡単な場合があります。

于 2012-09-04T15:39:44.850 に答える