[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message]

xpath/xquery to eleminate certain nodes

John Snelson john.snelson at oracle.com
Tue Aug 26 13:00:50 PDT 2008


  xpath/xquery to eleminate certain nodes
Hi Christian,

XQuery Update can be used to solve your problem fairly easily - 
something like this should do the trick:

copy $a := /
modify delete nodes $a/site/sites//categories/category[@name = 'hidden']
return $a

John

Christian Schlaefcke wrote:
> Hi,
> 
> I am fighting with a xpath/xquery expression to select the whole xml
> document except of certain nodes that I want to remove. The general
> structure of the document should be preserved.
> 
> With my approaches I either select too much or too less and my research @
> google & co. did not bring me any further :-(
> 
> The document structure is a bit tricky (arbitrarily nested categories) -
> imagine the following document:
> <sites>
>   <site>
>     <categories>
>       <category name="root">
>         <categories>
>           <category name="category_1">
>             <some>
>               <further>
>                 <nested>
>                   <info info_id="1">Important Information</info>
>                 </nested>
>               </further>
>             </some>
>           </category>
>           <category name="category_2">
>             <some>
>               <further>
>                 <nested>
>                   <info info_id="2">Less Important Information</info>
>                 </nested>
>               </further>
>             </some>
>           </category>
>         </categories>
>       </category>
>       <category name="hidden">
>         <categories>
>           <category name="dont_need_it">
>             <some>
>               <further>
>                 <nested>
>                   <info info_id="3">Unimportant Information</info>
>                 </nested>
>               </further>
>             </some>
>           </category>
>           <category name="dont_need_it_too">
>             <some>
>               <further>
>                 <nested>
>                   <info info_id="4">Even More Unimportant Information</info>
>                 </nested>
>               </further>
>             </some>
>           </category>
>         </categories>
>       </category>
>     </categories>
>   </site>
> </sites>
> 
> What I want would be:
> <sites>
>   <site>
>     <categories>
>       <category name="root">
>         <categories>
>           <category name="category_1">
>             <some>
>               <further>
>                 <nested>
>                   <info info_id="1">Important Information</info>
>                 </nested>
>               </further>
>             </some>
>           </category>
>         </categories>
>       </category>
>     </categories>
>   </site>
> </sites>
> 
> I tried several approaches like:
> /site/sites//categories/category[@name = 'category_1']
> or
> /site/sites//categories/category[@name != 'hidden']
> or
> /site/sites//categories/category/some/further/nested/info[@info_id = '1']
> 
> But all I get is something like this:
> <category name="category_1">
>   <some>
>     <further>
>       <nested>
>         <info info_id="1">Important Information</info>
>       </nested>
>     </further>
>   </some>
> </category>
> 
> What is missing to preserve the parent xml data?
> 
> Any hint that will point me to the right direction would be very appreciated!
> 
> Thank & Regards,
> 
> Christian
> 
> 
> 
> _______________________________________________
> http://x-query.com/mailman/listinfo/talk
> http://x-query.com/mailman/listinfo/talk


-- 
John Snelson, Oracle Corporation            http://snelson.org.uk/john
Berkeley DB XML:            http://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!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.