This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: select all nodes WITHOUT a specific attribute?
- From: Nisheet Verma <NisheetV at rioport dot com>
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 3 Dec 2001 12:20:27 -0800
- Subject: RE: [xsl] select all nodes WITHOUT a specific attribute?
- Reply-to: xsl-list at lists dot mulberrytech dot com
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@adone.com]
Sent: Monday, December 03, 2001 11:42 AM
To: XSL Mailing List (E-mail)
Subject: [xsl] 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