Re: Merging attributes in one XML file with node value
item()* zipTrees(node() tree1, node() tree2, item()* zipnodeFun(), item()* ziparcFun())
where we do not know in advance what exactly the functions zipnodeFun(), and ziparcFun() will be doing.
One application is tree merging, another obvious one is tree differencing, yet another could produce the results of any binary operation (boolean, arithmetic, bit-wise, ...) on any pair of corresponding nodes, ..., etc. the possibilities are unlimited.
A word of caution is that getting agreement on the semantics of (or even explaining well) such a function can be very problematic -- as the experience with the F & O function deep-equal() showed...
There's already a foldl-tree() function in FXSL -- whenever there's time I could try to write a zipTrees() function.
On 6/22/06, Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> wrote:
At 11:51 AM 6/22/2006, David wrote: > > awesomely elegant solution works > >'course elegance, like beauty, is in the eye of the beholder. Walking >over the tree(s) recursively carrying a bit of state with you might take >some more lines of code, but is probably more efficient than working out >/descendant::*[$n] each time.
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