[xquery-talk] xpath/xquery to eleminate certain nodes

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


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: talk-bounces at x-query.com
>> [mailto:talk-bounces at x-query.com] On Behalf Of Christian Schlaefcke
>> Sent: 26 August 2008 15:13
>> To: talk at x-query.com
>> Subject: Re: [xquery-talk] 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
>> >>
>> >>
>> >>
>> >> _______________________________________________
>> >> talk at x-query.com
>> >> 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
>> > _______________________________________________
>> > talk at x-query.com
>> > http://x-query.com/mailman/listinfo/talk
>>
>>
>>
>>
>> _______________________________________________
>> talk at x-query.com
>> http://x-query.com/mailman/listinfo/talk
>




More information about the talk mailing list