Hello everyone,
I installed Marklogic 4 and tested the query, now the query works with
all the functions at the end of the xpath in my case,
like base-uri(.), document-uri(fn:root(.)) and xdmp:node-uri(.)
and for base-uri() and document-uri(fn:root()), they don't even need
to dot "."
Thanks for everyone's help.
Helen
On Jan 20, 2010, at 11:00 AM, Geert Josten wrote:
Hi Helen,
cts:query is not well suited for testing absense of attributes and
elements. Your for loop is rather verbose, have you tried
compressing is to a single Xpath expression, for example:
doc()//ns1:a/ns1:sub[not(@temp1 or @temp2)]/base-uri(.)
Perhaps counter intuitive but it might perform even better when
using doc()//ns1:sub instead of the extra ns1:a/. Not sure though..
Kind regards,
Geert
Drs. G.P.H. Josten
Consultant
http://www.daidalos.nl/
Daidalos BV
Source of Innovation
Hoekeindsehof 1-4
2665 JZ Bleiswijk
Tel.: +31 (0) 10 850 1200
Fax: +31 (0) 10 850 1199
http://www.daidalos.nl/
KvK 27164984
De informatie - verzonden in of met dit emailbericht - is afkomstig
van Daidalos BV en is uitsluitend bestemd voor de geadresseerde.
Indien u dit bericht onbedoeld hebt ontvangen, verzoeken wij u het
te verwijderen. Aan dit bericht kunnen geen rechten worden ontleend.
From: [email protected]
[mailto:[email protected]] On Behalf Of
Helen Chen
Sent: woensdag 20 januari 2010 16:56
To: General Mark Logic Developer Discussion
Cc: Helen Chen
Subject: [MarkLogic Dev General] question about cts:search
Hi there,
I'm using marklogic as my xml database, and I have a node inside xml
like:
<ns1:a>
<ns1:sub temp1="yes" temp2="no">...</ns1:sub>
</ns1:a>
I have a large set of data, and I want to find out which xml
file has
<ns1:sub> node without attribute temp1 or attribute temp2.
I tried to use the query like following:
for $doc in fn:doc(), $sub in $doc//ns1:a/ns1:sub
let $temp1 := $sub[fn:empty(./@temp1)]
let $$temp2 := $sub[fn:empty(./@temp2)]
where fn:exists($sub) and ( $temp1 or $temp2 )
return
fn:base-uri($i)
but it took long time, I don't want to run it on production
database.
And using cts:query, I don't know how to check if an element has an
attribute or not.
Does anyone have any suggestions for this?
Thanks, Helen
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general