This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: select all nodes WITHOUT a specific attribute?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]