Hi,

I believe you are saving both docs to the file-system with two separate calls. 
I suggest when staring (and even generally) to include the XQuery header:

      declare option xdmp:mapping "false";.

Which will not treat a sequence as an instruction to call a function multiple 
times. That’s what you have now. The comma makes a sequence and then you pass 
that to xdmp:save() which writes *one item* to the file-system. So it loops 
automatically using the “mapping” option and saves twice. Both are saved at the 
same file-name, so you just get one.

But you probably want to save the data into the database. That function is 
xdmp:document-insert($uri, $doc-or-rootNode).l And I suspect you want create a 
new URI in MarkLogic based on the ID or URL attribute.

So try:



xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";;
let $docs := (
<record url="http://dbfeed.ured/EN0001"; mimetype="text/html" last-modified="NA" 
pagerank="NA">
<metadata>
<meta name="AN" content="US0001"></meta>
<meta name="ANP" content="US"></meta>
</metadata>
</record>,
<record url="http://dbfeed.ured/SP0002"; mimetype="text/html" last-modified="NA" 
pagerank="NA">
<metadata>
<meta name="AN" content="SP0002"></meta>
<meta name="ANP" content="SPAIN"></meta>
</metadata>
</record>
)

for $d in $docs
let $uri := "/" || substring-after($d/@url, "http://";)
return xdmp:document-insert($uri, $d)


From: general-bounces-dev-marklogic <general-boun...@developer.marklogic.com> 
on behalf of Ly CafeSua <thich...@gmail.com>
Reply-To: MarkLogic Discussion <general@developer.marklogic.com>
Date: Thursday, May 10, 2018 at 1:42 PM
To: MarkLogic Discussion <general@developer.marklogic.com>
Subject: [MarkLogic Dev General] how to save multiple documents to file system.

Hello all,

I am new to Marklogic and would like to learn how to save document nodes to 
server.  I have a sample code but it always save a last record has "SP0002".  
How can I save both records.  Thanks in advance.



xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";;
let $doc := (
             <record url="http://dbfeed.ured/EN0001"; mimetype="text/html" 
last-modified="NA" pagerank="NA">
                 <metadata>
                      <meta name="AN" content="US0001"></meta>
                      <meta name="ANP" content="US"></meta>
                 </metadata>
              </record>,
              <record url="http://dbfeed.ured/SP0002"; mimetype="text/html" 
last-modified="NA" pagerank="NA">
                  <metadata>
                     <meta name="AN" content="SP0002"></meta>
                     <meta name="ANP" content="SPAIN"></meta>
                   </metadata>
              </record>
              )

return xdmp:save("/output/mdr/xml/data2016.xml",$doc)
_______________________________________________
General mailing list
General@developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to