[xquery-talk] replacing a node in in-memory XML
John Snelson
john.snelson at oracle.com
Tue Nov 6 16:21:32 PST 2007
Hi Robert,
XQuery Update can be used to update (or copy/transform) any XML, whether
it is in a database or not. One of the programs I work on, XQilla, is
already able to do that:
http://xqilla.sourceforge.net
John
Robert Walpole wrote:
> Many thanks for your replies.
>
> I don't think I explained myself too well as actually I am aware of
> XQuery Update but understand that this is for updating documents stored
> within a database rather than just a temporary document fragment
> generated by some other Xquery.
>
> Wolfgang's suggestion looks very interesting and certainly works well
> for the test case. I will see if I can adapt this for the slightly more
> complex real-life situation I have.
>
> Thanks again.
> Rob Walpole
> Devon Portal Developer
> Email robert.walpole at devon.gov.uk
> Web http://www.devonline.gov.uk
>
>
>> -----Original Message-----
>> From: Wolfgang Meier [mailto:wolfgangmm at gmail.com]
>> Sent: 06 November 2007 15:31
>> To: Robert Walpole
>> Cc: talk at xquery.com
>> Subject: Re: [xquery-talk] replacing a node in in-memory XML
>>
>>
>> Hi Robert,
>>
>>> I am trying to figure out the best way to replace a node
>> within an in-memory
>>> XML fragment.
>> I really like to use the typeswitch statement for things like this:
>>
>> declare function t:replace($node as node()) as node() {
>> typeswitch ($node)
>> case $elem as element(services) return
>> <services>
>> <service value="false">1</service>
>> <service value="true">2</service>
>> <service value="false">3</service>
>> </services>
>> case $elem as element() return
>> element { node-name($elem) } {
>> $elem/@*, for $child in $elem/node() return
>> t:replace($child)
>> }
>> default return $node
>> };
>>
>> t:replace(doc("test.xml")/*)
>>
>> Wolfgang
>>
>
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk
--
John Snelson, Oracle Corporation
Berkeley DB XML: http://www.oracle.com/database/berkeley-db/xml
XQilla: http://xqilla.sourceforge.net
More information about the talk
mailing list