[xquery-talk] xpath/xquery to eleminate certain nodes
Michael Kay
mike at saxonica.com
Tue Aug 26 16:56:17 PDT 2008
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