Re: [xsl] checking if an attribute exists

Subject: Re: [xsl] checking if an attribute exists
From: "Bob DuCharme" <bob@xxxxxxxxx>
Date: Mon, 11 Jun 2001 13:47:58 -0400
> 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.

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:

Current Thread