2016-05-17 4 views
2

こんにちは私はMarkLogicでcts検索とXPathクエリを使用していますが、複数のパラメータも使用しています。私は大文字と小文字の両方をキャプチャする必要があります(XML検索の中で)。 $ ATTR1値がJURときMarkLogic 6で大文字と小文字を区別しない一致を実行する方法

サンプル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 

は、クエリが正常に実行されますが、私はどちらかの値キャップまたは下ケースを提供したいです。オプションを教えてください。

注:照合順序を変更した後、検索では大文字と小文字の両方が機能しますが、XPath照会は機能しません。私はあなたが照合順序の使用を理解示唆

+1

サンプルコードを入力すると、入力後に正確に何が表示されるのでしょうか。 – grtjn

答えて

4

問題の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 

これは若干遅くなると思われますが、大文字と小文字は関係なく一致します。

3
+0

私は照合順序(http://marklogic.com/collat​​ion/en/S1)をワードレキシコンの特定のDBに変更しました。属性名は動的にまた値も、値は大文字と小文字のどちらかでしか機能しませんでしたが、属性名は機能しませんでした。 – Antony

+0

詳細については、詳細をご提供いただく必要があります。クエリサンプル、データサンプル、設定など。 –

+0

私はあなたのpersualのためにサンプルxmlとXqueryを提供しています。 – Antony

関連する問題