|
[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 XMLJohn Snelson john.snelson at oracle.comTue Nov 6 15:56:44 PST 2007
Hi Wolfgang, In the absence of XQuery Update, I really like your technique for doing this transformation. I think it's actually simpler and easier to read than the equivalent XSLT. John Wolfgang Meier wrote: > 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 > _______________________________________________ > http://x-query.com/mailman/listinfo/talk > 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
|
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
|






