Use Case:

We need to merge two XML files based on common element ID.

DocList.xml with size of 31 MB and other DocListExtra.xml of 8MB


The xquery code is giving Time Limit exceed error.


Code:

import module namespace mem = "http://xqdev.com/in-mem-update";
    at  "/rest-apis/utils/mem.xqy";

let $docList := fn:doc("/misc/DocList.xml")
let $extraList := fn:doc("/misc/DocListExtra.xml")

let $docExtra :=
let $docIDs := $docList//ID/text()
for $doc in $extraList
return
  $doc//DocumentExtra[./DocumentExtraID/text() = $docIDs]

 for $doc in $docList
 for $each in $docExtra
 let $x := $doc//Document[./ID/text() = $each/DocumentExtraID/text()]
  let $dummy := mem:node-insert-child($x,$each//CustomMetadata)
   return xdmp:save("/data/merged.xml",$dummy)


Please suggest.


Thanks

Pragya

"This e-mail and any attachments transmitted with it are for the sole use of 
the intended recipient(s) and may contain confidential , proprietary or 
privileged information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. Any 
unauthorized review, use, disclosure, dissemination, forwarding, printing or 
copying of this e-mail or any action taken in reliance on this e-mail is 
strictly prohibited and may be unlawful."
_______________________________________________
General mailing list
General@developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to