Re: [xsl] select all nodes WITHOUT a specific attribute?

Subject: Re: [xsl] select all nodes WITHOUT a specific attribute?
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 03 Dec 2001 15:29:45 -0500
William,

At 02:41 PM 12/3/01, you wrote:
What I got so far is

<xsl:for-each select="things/thing[string-length(@id) = 0]">
    ...
</xsl:for-each>

This seems to work, but it rubs me the wrong way.  Is there a more elegant
solution?

Your instincts are good.


things/thing[not(@id)]"

will return things that have no id attribute, as opposed to things whose id attribute is length zero.

Mind you, a <thing id=""/> will be left out by your test, but caught by mine. If you wanted something truly equivalent,

things/thing[not(string(@id))]"

will not include <thing id=""/> -- it almost amounts to the same test you have.

Hope that helps,
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 ======================================================================


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



Current Thread