|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] replacing a node in in-memory XMLRobert Walpole robert.walpole at devon.gov.ukTue Nov 6 16:08:08 PST 2007
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 http://x-query.com/mailman/listinfo/talk
Web http://www.devonline.gov.uk
> -----Original Message-----
> From: Wolfgang Meier [mailto:http://x-query.com/mailman/listinfo/talk]
> Sent: 06 November 2007 15:31
> To: Robert Walpole
> Cc: http://x-query.com/mailman/listinfo/talk
> Subject: Re: 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
>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






