Discussion:
xpath result - how to include parent node
(too old to reply)
moonty
2006-09-04 13:50:07 UTC
Permalink
Take the following example:

<x>
<y>y content</y>
<z>z content<z>
</x>

The result from the xpath query i want is:

<x>
<y>y content</y>
</x>

However all I seem to be able to get (//x/y) is:

<y>y content</y>

Any ideas?

Thanks,

Josh
Martin Honnen
2006-09-04 13:59:13 UTC
Permalink
Post by moonty
<x>
<y>y content</y>
<z>z content<z>
</x>
<x>
<y>y content</y>
</x>
XPath does not change the structure or contents of the document you
operate on thus if you select the x element with e.g.
/x
then it has all its child nodes. Of course you can first select the x
element with e.g.
/x
and then on that node do a relative XPath expression of e.g.
y
to select only the y child element(s).

You can also do e.g.
/x | /x/y
to select both the x element and its y child element(s) but that will
not change the structure of the XML, the selected x element still has
that z child element as well.


If you really want to change the structure (e.g. remove those z
element(s)) then you need an XSLT transformation.
--
Martin Honnen --- MVP XML
http://JavaScript.FAQTs.com/
Loading...