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

Reply via email to