Re: [xsl] Display text and all the following nodes except <anchor> and <pb>

Subject: Re: [xsl] Display text and all the following nodes except <anchor> and <pb>
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 18 Sep 2008 09:56:45 -0400
J.S.,

At 04:59 AM 9/18/2008, you wrote:
I am doing the same. Below is my code!!!

Nonetheless I think Syd is right to suspect you haven't sketched out the complete problem.


George's answer is the best one (match unwanted elements and do nothing with them), and if there's a reason it doesn't work for you, it is probably worth showing why in more detail.

In particular,
<xsl:apply-templates select="*[not(name(.)='anchor' or name(.)='pb')] |text()"/>

is not really graceful. Testing elements with the name() function is both ungainly (why use name() when XPath is designed to do this?), and error-prone (since if your input ever has namespace prefixes it will fail). It may sometimes work, but it's like trimming a hedge with a pair of scissors.


One reason it's sometimes done is that it's what you commonly do in languages not built with XML processing in mind. This is understandable, but not in itself a good reason.

Cheers,
Wendell



======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

Current Thread