not function evaluates a boolean expression and returns the opposite value.
not( expression )
True for an expression that evaluates to false; false for an expression that evaluates to true.
- This function should behave similarly to the boolean() function except that it returns the opposite value.
- You can test if an element doesn't have some attribute.
<xsl:for-each match="//a[not(@name and @name = 'badname')]"> <!-- iterates over any <a> element in the document, that either has no 'name' attribute at all, or it has one, but its value is not "badname". --> </xsl:template>