Hi all,
My first post here and I want to start by saying how much I appreciate
the big FAQ, the Jeni site, etc. It has all helped me tremendously.
I can't find an answer to this one, though, so here goes...
My XML doc has this basic structure:
<a>
<b>
<c>
<!-- This is the section of interest -->
</c>
</b>
</a>
The <c> element can contain any combination of elements <d> through <z>.
Elements <y> and <z> have special uses.
I want to create a global variable that contains the result tree
fragment contained within element <c>, with the following restrictions:
I only want to include the first <y> element that is contained within
<c>, no matter where it occurs. There may be no <y> elements present.
I want to exclude all <z> elements that are contained within <c>, no
matter where they occur. Again, there may be none present.
Later on in my stylesheet, I use exslt:node-set() on the variable and
process the node set.
For instance, given this source:
<a><b><c>
<d>
<z>
<g />
</d>
<q>
<r>
<y />
<z />
</r>
<y />
<q>
<y>
</c></b></a>
I want the selection to contain this:
<a><b><c>
<d>
<g />
</d>
<q>
<r>
<y />
</r>
<q>
</c></b></a>
(<z> elements are gone, only the first <y> element remains.)
I have tried many variations on the select portion of the variable
definition. I can filter the immediate children of <c>, OR the second
level children, etc., but I can't seem to come up with anything that
handles <y> and <z> appearing at any depth in the descendant tree.
I'm prepared to be humiliated by some obvious solution... Can anyone
please help?
Thanks,
Rush