Subject: RE: select all nodes WITHOUT a specific attribute?
From: Nisheet Verma <NisheetV@xxxxxxxxxxx>
Date: Mon, 3 Dec 2001 12:20:27 -0800
|
try
<xsl:for-each select="things/thing[not(@id!='')]">
It works.
I don't know why I would need not() here but <xsl:for-each
select="things/thing[@id='']"> does not work hence reversed the logic and
introduced not() and it works.
Nisheet
-----Original Message-----
From: William Bagby [mailto:williamb@xxxxxxxxx]
Sent: Monday, December 03, 2001 11:42 AM
To: XSL Mailing List (E-mail)
Subject: select all nodes WITHOUT a specific attribute?
How do I select all nodes that DO NOT have a specific attribute?
For example, I have
<things>
<thing id="1">One</thing>
<thing>shoe</thing>
<thing>bear</thing>
<thing id="2">Two</thing>
<thing id="3">Three</thing>
<thing>airplane</thing>
<thing id="4">Four</thing>
<thing id="5">Five</thing>
</things>
and I want:
<thing>shoe</thing>
<thing>bear</thing>
<thing>airplane</thing>
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?
William Bagby
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|