Re: [xsl] checking if an attribute exists

Subject: Re: [xsl] checking if an attribute exists
From: Oskar Werewka <ow5@xxxxxxxxxxxxxx>
Date: Mon, 11 Jun 2001 20:36:09 +0200

Thank you. It is working now.

> This i very simple question:
> <element attribute="...">Value</element>
> How can I check if the "attribute" attribute is defined?

I'll use the following as an example because it will be easier to discuss
(i.e. I won't have to talk about the element element or the attribute

<car color="...">Value</car>

If you want to know whether a given car element has a color attribute set,
then <xsl:if test="@color"></xsl:if> in a template rule for car will check
for this.

I was fighting test="@color" for one hour, but I was in a wrong node ;->

If, on the other hand, by "defined" you mean that you want to check whether
color was declared as an attribute for the car element, you can't, because
attribute list declarations happen in the DTD, and an XSLT processor has no
way of knowing what's in the DTD.

The input to an XSLT processor is an in-memory representation of a document
known as a source tree that was constructed with the help of an XML parser.
This parser may have looked at the DTD, but once the source tree is created,
the parser's job is done, and the XSLT processor has no way of knowing what
effect a DTD may have had on the tree's construction.

Bob DuCharme               <bob@>      see for
info on new book "XSLT Quickly" from Manning Publications.

XSL-List info and archive:


Kamera wideo Sony, 5000 zl
wygraj w konkursie eMarketu i [ ]

XSL-List info and archive:

Current Thread