Subject: Re: [xsl] checking if an attribute exists|
From: Oskar Werewka <ow5@xxxxxxxxxxxxxx>
Date: Mon, 11 Jun 2001 20:36:09 +0200
> 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):
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
Kamera wideo Sony, 5000 zl wygraj w konkursie eMarketu i Onet.pl [ http://konkursy.onet.pl/emarket ]