If that doesn't work, try this :
cts:search(collection()/root/child1,
cts:and-query((
cts:element-attribute-value-query(xs:QName("child2"), xs:QName("att"),
"1"),
cts:element-query ( xs:QName("child2"),
cts:element-attribute-value-query(xs:QName("child3"), xs:QName("att"),
"1")
)
)))/child3
On Fri, Jul 10, 2015 at 5:59 AM, Danny Sinang <[email protected]> wrote:
> Try something like this :
>
> cts:search(collection()/root/child1/child2,
> cts:and-query((
> cts:element-attribute-value-query(xs:QName("child2"), xs:QName("att"),
> "1"),
> cts:element-query ( xs:QName("child2"),
> cts:element-attribute-value-query(xs:QName("child3"), xs:QName("att"),
> "1")
> )
> )))/child3
>
> On Fri, Jul 10, 2015 at 5:04 AM, 张晓博 <[email protected]> wrote:
>
>> query
>> cts:search(/root/child1/child2,
>>
>> cts:and-query((
>> cts:element-attribute-value-query(xs:QName("child2"), xs:QName("att"),
>> "1"),
>> cts:element-attribute-value-query(xs:QName("child3"), xs:QName("att"),
>> "1")
>> )))/child3[@att = "1"]
>> can work, but it is not i want.
>>
>> I want the query like this:
>> cts:search(/root/child1/child2/child3,
>>
>> cts:and-query((
>> cts:element-attribute-value-query(xs:QName("child2"), xs:QName("att"),
>> "1"),
>>
>> cts:element-attribute-value-query(xs:QName("child3"), xs:QName("att"),
>> "1")
>>
>> )))
>>
>> but it can not work correctly. because cts:element* function can search
>> the element and all of child element, but
>> if i want to search its parent element, is there any cts:queries
>> function i can use?
>>
>>
>>
>>
>>
>> >----------------------------------------------------------------------
>> >
>> >Message: 1
>> >Date: Fri, 10 Jul 2015 16:09:37 +0800 (CST)
>> >From: ??? <[email protected]>
>> >Subject: [MarkLogic Dev General] Equivalent conversion from Xquery to
>> > cts:queries
>> >To: [email protected]
>> >Message-ID: <[email protected]>
>> >Content-Type: text/plain; charset="gbk"
>> >
>> >In my database, the most of xml documents content likes this:
>> ><root>
>> ><child1 att="1">
>> ><child2 att="1" id="1">
>> ><child3 att="1" id="1">
>> ></child3>
>> ><child3 att="2" id="2">
>> ></child3>
>> ></child2>
>> ><child2 att="1" id="2">
>> ><child3 att="3">
>> ></child3>
>> ></child2>
>> ></child1>
>> ></root>
>> >
>> >
>> >the Xquery is:
>> >for $i in collection()/root/child1/child2/child3
>> >where
>> >$i/@att = '1'
>> >and $i/..[@att] = '1'
>> >return $i/@id
>> >and its result is:
>> ><child3att="1"id="1"> </child3>
>> >
>> >
>> >but when i use the cts:query to do the same thing , the result is different
>> >
>> >
>> >query :
>> >cts:search(collection()/root/child1/child2,
>> > cts:and-query((
>> > cts:element-attribute-value-query(xs:QName("child2"), xs:QName("att"),
>> > "1"),
>> > cts:element-attribute-value-query(xs:QName("child3"), xs:QName("att"),
>> > "1")
>> > )))/child3
>> >and result is:
>> ><child3att="1"id="1"></child3>
>> >element
>> ><child3att="2"id="2"></child3>
>> >
>> >
>> >so how can i rewrite the XQuery by useing cts:queries when ../ appear in
>> >the where condition?
>> >-------------- next part --------------
>> >An HTML attachment was scrubbed...
>> >URL:
>> >http://developer.marklogic.com/pipermail/general/attachments/20150710/a15af41a/attachment-0001.html
>> >
>> >------------------------------
>> >
>> >Message: 2
>> >Date: Fri, 10 Jul 2015 08:32:38 +0000
>> >From: <[email protected]>
>> >Subject: Re: [MarkLogic Dev General] Equivalent conversion from Xquery
>> > to cts:queries
>> >To: <[email protected]>
>> >Message-ID:
>> > <[email protected]>
>> >Content-Type: text/plain; charset="us-ascii"
>> >
>> >Hi,
>> >
>> >Try this ,
>> >
>> >cts:search(/root/child1/child2,
>> > cts:and-query((
>> > cts:element-attribute-value-query(xs:QName("child2"), xs:QName("att"),
>> > "1"),
>> > cts:element-attribute-value-query(xs:QName("child3"), xs:QName("att"),
>> > "1")
>> > )))/child3[@att = "1"]
>> >
>> >Thanks and regards
>> >Raja >>>
>> >
>> >From: [email protected]
>> >[mailto:[email protected]] On Behalf Of ???
>> >Sent: Friday, July 10, 2015 1:40 PM
>> >To: [email protected]
>> >Subject: [MarkLogic Dev General] Equivalent conversion from Xquery to
>> >cts:queries
>> >
>> >In my database, the most of xml documents content likes this:
>> ><root>
>> > <child1 att="1">
>> > <child2 att="1" id="1">
>> > <child3 att="1" id="1">
>> > </child3>
>> > <child3 att="2" id="2">
>> > </child3>
>> > </child2>
>> > <child2 att="1" id="2">
>> > <child3 att="3">
>> > </child3>
>> > </child2>
>> > </child1>
>> ></root>
>> >
>> >the Xquery is:
>> >for $i in collection()/root/child1/child2/child3
>> >where
>> >$i/@att = '1'
>> >and $i/..[@att] = '1'
>> >return $i/@id
>> >and its result is:
>> ><child3 att="1" id="1"> </child3>
>> >
>> >but when i use the cts:query to do the same thing , the result is different
>> >
>> >query :
>> >cts:search(collection()/root/child1/child2,
>> > cts:and-query((
>> > cts:element-attribute-value-query(xs:QName("child2"), xs:QName("att"),
>> > "1"),
>> > cts:element-attribute-value-query(xs:QName("child3"), xs:QName("att"),
>> > "1")
>> > )))/child3
>> >and result is:
>> ><child3 att="1" id="1"></child3>
>> >element <http://172.18.34.28:8000/qconsole/>
>> ><child3 att="2" id="2"></child3>
>> >
>> >so how can i rewrite the XQuery by useing cts:queries when ../ appear in
>> >the where condition?
>> >
>> >This e-mail and any files transmitted with it are for the sole use of the
>> >intended recipient(s) and may contain confidential and privileged
>> >information. If you are not the intended recipient(s), please reply to the
>> >sender and destroy all copies of the original message. Any unauthorized
>> >review, use, disclosure, dissemination, forwarding, printing or copying of
>> >this email, and/or any action taken in reliance on the contents of this
>> >e-mail is strictly prohibited and may be unlawful. Where permitted by
>> >applicable law, this e-mail and other e-mail communications sent to and
>> >from Cognizant e-mail addresses may be monitored.
>> >-------------- next part --------------
>> >An HTML attachment was scrubbed...
>> >URL:
>> >http://developer.marklogic.com/pipermail/general/attachments/20150710/e93bb167/attachment.html
>> >
>> >------------------------------
>> >
>> >_______________________________________________
>> >General mailing list
>> >[email protected]
>> >Manage your subscription at:
>> >http://developer.marklogic.com/mailman/listinfo/general
>> >
>> >
>> >End of General Digest, Vol 133, Issue 26
>> >****************************************
>>
>>
>>
>>
>> _______________________________________________
>> General mailing list
>> [email protected]
>> Manage your subscription at:
>> http://developer.marklogic.com/mailman/listinfo/general
>>
>>
>
_______________________________________________
General mailing list
[email protected]
Manage your subscription at:
http://developer.marklogic.com/mailman/listinfo/general