I got it. It works for me. Thanks, Helen
On Oct 28, 2010, at 1:34 PM, [email protected] wrote: > in-mem-update won't update nodes from the DB. What I have done it create a > new node in memory based on the one loaded from the DB. Maybe there's a > better, I don't know. > > Something like this: > > let $uri := "/aa.xml" > let $article-in-db := fn:doc($uri)/pxml:article > let $article := element { fn:name($article-in-db) } { $article-in-db/@*, > $article-in-db/*, $article-in-db/text() } > return mem:node-insert-child($article/pxml:front/pxml:history, <a/>) > > But then of course you'd have to save the changes back to the DB if you > wanted to persist them. > > From: [email protected] > Date: Thu, 28 Oct 2010 13:16:21 -0400 > To: [email protected] > Subject: Re: [MarkLogic Dev General] Inserting node to xml before it is > loaded in Marklogic > > Hello there, > > > I'm interested in the memupdate from > http://github.com/marklogic/commons/tree/master/memupdate/ and I tried it. > I found one thing that I don't understand: > > > If I manually get the article node data and assign it to $doc as static data, > it will work, like > let $doc :=<article xmlns="pxml"> > <front> > <history/> > </front> > </article> > return > mem:node-insert-child($doc/pxml:front/pxml:history, <a/>) > > the <a/> is inserted into history node. > > > But if the node is the node that I use fn:doc() to get from database, then it > does not do the update in memory. > for example: > let $uri := "/aa.xml" > let $doc := fn:doc($uri)/pxml:article > return > mem:node-insert-child($doc/pxml:front/pxml:history, <a/>) > > I expect that it will return me with article node that has the <a/> inserted > into history node, but it didn't. > > > Is there anything that I missed? I want to get a document from database, > update some node, and then insert into another database with updated data. > > Thanks, Helen > > > > > On Oct 26, 2010, at 1:10 PM, Micah Dubinko wrote: > > I believe this could help you: > > http://github.com/marklogic/commons/tree/master/memupdate/ > > Thanks, -m > > On Oct 26, 2010, at 2:57 AM, Geert Josten wrote: > > Hi Pragya, > > It sounds like you are looking for 'in-memory' updating of the XML. There was > a small library module on XQzone that facilitated with this, but not sure > where it went on github. It could also that the xqueryfunctions library > (http://www.xqueryfunctions.com/) provides readily available functions that > should help you with it. But it is quite trivial with your example: > > let $x := > <x> > <a>..</a> > <b>…</b> > <c>..</c> > <c>..</c> > </x> > > return > element { node-name($x) } { > $x/@*, > $x/*, > <c>...</c> > } > > You can use typeswitch if you need to go through your content recursively.. > > Kind regards, > Geert > > > > drs. G.P.H. (Geert) Josten > Consultant > > Daidalos BV > Hoekeindsehof 1-4 > 2665 JZ Bleiswijk > > T +31 (0)10 850 1200 > F +31 (0)10 850 1199 > > [email protected] > www.daidalos.nl > > KvK 27164984 > > > De informatie - verzonden in of met dit e-mailbericht - 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 Pragya Kapoor > Sent: dinsdag 26 oktober 2010 11:33 > To: [email protected] > Subject: [MarkLogic Dev General] Inserting node to xml before it is loaded in > Marklogic > > Hi, > > I need to insert and element node to the following xml without inserting > into ML: > > <x> > <a>..</a> > <b>…</b> > <c>..</c> > <c>..</c> > </x> > > I want to add another <c> element based on some condition to get the desired > xml as: > <x> > <a>..</a> > <b>…</b> > <c>..</c> > <c>..</c> > <c>..</c> > </x> > > Please let me know how can I do this. > > Thanks, > Pragya > **************** CAUTION - Disclaimer ***************** > This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely > for the use of the addressee(s). If you are not the intended recipient, > please > notify the sender by e-mail and delete the original message. Further, you are > not > to copy, disclose, or distribute this e-mail or its contents to any other > person and > any such actions are unlawful. This e-mail may contain viruses. Infosys has > taken > every reasonable precaution to minimize this risk, but is not liable for any > damage > you may sustain as a result of any virus in this e-mail. You should carry out > your > own virus checks before opening the e-mail or attachment. Infosys reserves > the > right to monitor and review the content of all messages sent to or from this > e-mail > address. Messages sent to or from this e-mail address may be stored on the > Infosys e-mail system. > ***INFOSYS******** End of Disclaimer ********INFOSYS*** > > > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general > > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general > > > _______________________________________________ General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
