我需要搜索属性中有空格" "
的元素。
例如:
<unit href="http:xxxx/unit/2 ">
假设上面的代码在href属性的最后一行中有空格。
我使用FLOWER
查询完成了此操作。但我需要使用CTS函数来完成。请建议。
对于FLOWER
查询,我试过这个:
let $x := (
for $d in doc()
order by $d//id
return
for $attribute in data($d//@href)
return
if (fn:contains($attribute," ")) then
<td>{(concat( "id = " , $d//id) ,", data =", $attribute)}</td>
else ()
)
return <tr>{$x}</tr>
这很好。
对于CTS
,我试过了
let $query :=
cts:element-attribute-value-query(xs:QName("methodology"),
xs:QName("href"),
xs:string(" "),
"wildcarded")
let $search := cts:search(doc(), $query)
return fn:count($search)
答案 0 :(得分:2)
您的查询正在寻找&#34; &#34;成为属性的全部值。如果要查找包含空格的属性,则需要使用通配符。但是,由于除了精确值查询(根据定义不是通配符)之外没有空格索引,因此您不会为该查询获得大量索引支持,因此您需要将其作为过滤搜索(你在上面的代码中有很多误报)。
您可能最好在属性上创建字符串范围索引并对其进行值匹配。