xsl-list
[Top] [All Lists]

RE: XPath: excluding a descendant

2003-09-02 01:03:07
The aim:
For providing some quick-and-dirty html output, just making 
sure all data are in there somehow, I want to "dump" all 
content below a certain node (not the root element) to the 
screen. There is, however, one sub-sub-sub-node whose 
contents I want to display on its own in a more structured 
way, and I do not want it duplicated in the dump. Following 
the suggestions I could find for selecting all children 
except for one in the FAQ I constructed this:

<xsl:apply-templates 
select="abcd:Gathering[not(self::LongitudeDecimal)]"/>

This will process all the abcd:Gathering elements that are not
LongitudeDecimal elements. Of course, none of them are.

Without seeing the structure of your XML I find it difficult to tell you
the correct code.

But the simplest way of not processing a particular element (and its
children/descendants) is to write an empty template rule for it:

<xsl:template match="LongitideDecimal"/>

Michael Kay



where Gathering is the top node for the dump, and 
Gathering/GatheringSite/SiteCoordinates/LongitudeDecimal the 
one node I would want _not_ to display. This does not work at 
all, I guess because the element-to-exclude is not a child, 
but a descendant (?). If I change the line above to 
"...not(descendant::...", I get a different effect: not 
excepting the one element from the output, but just testing 
on presence of the node, with everything being displayed when 
"LongitudeDecimal" does not exist, but nothing when it does. 
How can I achieve to always display everything, always 
without the Longitude-content?

Thanks,
Andrea


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list