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]

Re: checking if an attribute exists


> 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
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            www.snee.com/bob             <bob@
snee.com>      see http://www.snee.com/bob/xsltquickly for
info on new book "XSLT Quickly" from Manning Publications.



 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]