[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

Christian Schlaefcke cschlaefcke at wms-network.de
Tue Aug 26 18:18:40 PDT 2008


  xpath/xquery to eleminate certain nodes
Hi Micheal,

I just downloaded saxon9 (9.1.0.1) and put it in my local Maven2
repository and added it to my classpath with these dependencies:
        <dependency>
            <groupId>net.sf.saxon</groupId>
            <artifactId>saxon9sa</artifactId>
            <version>9.1.0.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.saxon</groupId>
            <artifactId>saxon9sa-jaxp</artifactId>
            <version>9.1.0.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.saxon</groupId>
            <artifactId>saxon9sa-qc</artifactId>
            <version>9.1.0.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.saxon</groupId>
            <artifactId>saxon-dom</artifactId>
            <version>9.1.0.1</version>
        </dependency>

Having this I do not get the "no query engine" error, so I guess it
XmlBeans can access Saxonias query engine.

But I still get the "XPST0003" error. Maybe "updating" is not enabled by
default - how can it be "enabled" then?

Thanks & Regards,

Christian

> To run XQuery Update in Saxon you need the Saxon-SA version of the
> product,
> and you need to run it with updating enabled.
>
> Michael Kay
> http://www.saxonica.com/
>
>> -----Original Message-----
>> From: http://x-query.com/mailman/listinfo/talk
>> [mailto:http://x-query.com/mailman/listinfo/talk] On Behalf Of Christian Schlaefcke
>> Sent: 26 August 2008 15:13
>> To: http://x-query.com/mailman/listinfo/talk
>> Subject: Re:  xpath/xquery to eleminate certain nodes
>>
>> Thank you John!
>>
>> looks promising! But after I tried to adapt it to my
>> application I have some trouble with XmlBeans and Saxon that
>> I use to run my queries.
>>
>> After I found out that xquery uptate was not available with
>> the XmlBeans/Saxon versions I used (2.3.0/8.7) I upgraded to versions
>> (2.4.0/9.1.0.1) and now I get this error:
>>
>> Error on line 3 column 9
>>   XPST0003: XQuery syntax error in #...$this external; copy $#:
>>     Unexpected token "copy" in path expression
>>
>> My query looks like this:
>>   declare namespace mns='http://www.mynamespace.com';
>>   copy $a := /
>>   modify delete node
>> $a/mns:sites/mns:site//mns:categories/mns:category[@id = "888"]
>>   return $a
>>
>> Did someone encounter this problem before?
>>
>> Thanks & Regards,
>>
>> Christian
>>
>>
>> > 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
>> > _______________________________________________
>> > http://x-query.com/mailman/listinfo/talk
>> > http://x-query.com/mailman/listinfo/talk
>>
>>
>>
>>
>> _______________________________________________
>> http://x-query.com/mailman/listinfo/talk
>> http://x-query.com/mailman/listinfo/talk
>




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-2011 All Rights Reserved.