files/en-us/web/xml/xpath/reference/functions/not/index.md
The not function evaluates a boolean expression and returns the opposite value.
not( expression )
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>
Supported.