我希望对 XML 文档中的特定元素的值使用 XQuery 的匹配函数,该文档将 2 个字符串作为参数。我需要将元素的文本值作为参数传递给函数。但是当我使用 $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")
这导致一个$title
包含两个 text()
项目序列的变量;但是因为 fn:contains()
只接受xs:string?
而不是xs:string+
因为它的论点,它会失败,抱怨(例如在BaseX中):
[XPTY0004] Single item expected, (<title>...</title>, <title>...</title>) found.
于 2012-10-31T10:17:39.520 回答