|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] two xml match/diffesMartin Probst martin at x-hive.comWed Jan 17 11:51:22 PST 2007
> I'm new to the xquery and want to have a query to join > two xml files to find the matches and differences, e.g > a.xml: > <root1> > <a1>1</a1> > <a2>3</a2> > <a3>5</a3> > </root1> > > b.xml: > <root2> > <b1>1</b1> > <b2>2</b2> > <b3>3</b3> > </root2> > What about: let $as := doc('a.xml')/root1/* let $bs := doc('b.xml')/root2/* let $matches-a := $as[. = $bs] let $matches-b := $bs[. = $as] return <res> { <same> { for $match in $matches-a return <match from="{ node-name($match) }">{ string ($match) } </match> } </same>, <root1>{ $as except $matches-a }</root1>, <root2>{ $bs except $matches-b }</root2> } </res> It returns "match" elements for the matches and stores the original node name in an attribute. You can of course also create a new element type for each match, see James' query for that. Regards, Martin
|
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
|






