我正在尝试编写一个 XQuery,它会在 xml 文件中找到包含给定关键字的所有文本节点。文本节点很长,所以我想返回从匹配关键字开始的文本子字符串(具有所需长度)。
示例文件.xml
<books>
<book>
<title>linear systems</title>
<content>vector spaces and linear system analysis </content>
</book>
<book>
<title>some title</title>
<content>some content</content>
</book>
</books>
样本xquery.xq
declare namespace functx = "http://www.functx.com";
for $match_result in /*/book/*[contains(.,'linear')]/text()
return substring($match_result, functx:index-of-match-first($match_result,'linear'), 50)
我希望得到结果[线性系统,线性系统分析]。第一本书的标题节点包含单词“linear”。返回从 'linear....' 开始的 50 个字符。第一本书的内容节点也是如此。
我正在使用 XQuery 1.0,并包含了命名空间 functx,如以下示例所示:http ://www.xqueryfunctions.com/xq/functx_index-of-match-first.html
但是,这给了我一个错误:[XPST0017] 未知函数“functx:index-of-match-first(...)”。
谢谢,索尼