2010-08-11 3 views

Répondre

0

http://x-query.com/pipermail/talk/2004-November/000358.html

< < Il y a aucun opérateur tel que "&=" dans XQuery. Je pense que vous avez besoin de la fonction contains() à la place, bien que vous vouliez des matches().

Je pense que votre question devrait ressembler à:

let $query := 
    if ($ttl != "") then (
    for $entries in collection($collctn)//TEI.2 
         [contains(., $kwds) and 
         descendant::head[contains(., $ttl)] 
    return (
     if ($entries/@id = "ppp.00271") then (
     ... 
    ) 
     else if ($entries/@id = "ppp.00237") then (
     ... 
    ) 
     else if ($entries/@id = "ppp.00473") then (
     ... 
    ) 
     else (
     ... 
    ) 
) 
    else if (...) then (
    ... 
) 
    else (
    ... 
) 
6

XQuery a Et l'opérateur qui est « et ». il a aussi l'opérateur OU "ou".

let $d := <Employee> 
<Name>Test</Name> 
<ID>1909239</ID> 
<Address>test Add </Address> 
<Email>[email protected]</Email> 
<Department>Dept 1</Department> 
<Department>Dept 2</Department> 
<Department>Dept 3</Department> 
<Department>Dept 4</Department> 
<Department>Dept 5</Department> 

return if(($d//*:Department[1]/text() = 'Dept 1') and ($d//*:Department[1]/text() = 'Dept 2')) then fn:true() else fn:false() 
+0

Cette Codé testé contre MarkLogic Server. mais XQuery est défini sur les normes W3C. – kadalamittai

Questions connexes