嗨,我在MarkLogic中使用了cts搜索和XPath查询,我还使用了多个参数。我需要同时捕获大写字符和小字符(在XML搜索中)。
示例XML
<PP uri="/2000_4_174.xml">
<P name="jur" value="ht"/>
<P name="sitting" value="17 AUGUST"/>
<P name="startpage" value="174"/>
</PP>我的XQuery
let $attr1 := "JUR"
let $attr2 := "startpage"
let $value1 := "ht"
let $value2 := "174"
let $uri := //PP[P[@name=$attr1 and @value=$value1] and P[@name=$attr2 and @value=$value2]]/@uri
return $uri当$attr1值为jur时,查询将成功运行,但我希望提供值的大写或小写。请告诉我任何选择。
注意:在更改排序规则cts搜索后,可以同时使用大写和小写,但是XPath查询不能工作。
发布于 2016-05-18 12:21:30
要解决问题的XPath部分,可以执行不区分大小写的匹配。
let $attr1 := "JUR"
let $attr2 := "startpage"
let $value1 := "ht"
let $value2 := "174"
let $uri := //PP[P[fn:matches(@name, $attr1, "i") and @value=$value1] and
P[@name=$attr2 and @value=$value2]]/@uri
return $uri我希望这会稍微慢一点,但不管情况如何,它都会匹配。
发布于 2016-05-17 09:32:49
我建议你理解校对的用法:
https://stackoverflow.com/questions/37272140
复制相似问题