パラメータとして 2 つの文字列を受け取る XML ドキュメント内の特定の要素の値に対して、XQuery の matches 関数を使用したいと考えています。要素のテキスト値をパラメーターとして関数に渡す必要があります。しかし、 $title/text() を使用すると、文字列として受け入れられず、エラーが発生します
質問する
54 次
1 に答える
1
私は(より多くの情報が不足しているために...)あなたは次のようなことをするつもりだったと思います:
let $doc := <doc>
<title>Abc</title>
<title>Cde</title>
</doc>
for $title in $doc/title
return matches($title, "Cde")
代わりに、あなたは次のようなことをしたと思います。
let $doc := <doc>
<title>Abc</title>
<title>Cde</title>
</doc>
(: oh no! :)
let $title := $doc/title
return matches($title, "Cde")
これにより、 2つのアイテム$title
のシーケンスを含む変数が作成されます。しかし 、引数を受け入れるだけで失敗するため、(BaseXなどで)次のように不平を言います。 text()
fn:contains()
xs:string?
xs:string+
[XPTY0004] Single item expected, (<title>...</title>, <title>...</title>) found.
于 2012-10-31T10:17:39.520 に答える