[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

How to create a node set that excludes some descendant

Subject: How to create a node set that excludes some descendant elements?
From: Rush Manbert <rush@xxxxxxxxxxx>
Date: Mon, 11 Apr 2005 16:57:24 -0700
xsl remove child descendant element
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

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.