[xquery-talk] xpath/xquery to eleminate certain nodes
Christian Schlaefcke
cschlaefcke at wms-network.de
Tue Aug 26 12:54:24 PDT 2008
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
More information about the talk
mailing list