This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Defining an attribute only if not empty
- To: xsl-list at mulberrytech dot com
- Subject: Re: Defining an attribute only if not empty
- From: Wendell Piez <wapiez at mulberrytech dot com>
- Date: Mon, 08 May 2000 15:30:47 +0100
- Reply-To: xsl-list at mulberrytech dot com
Carlos,
This is pretty straightforward:
<xsl:element name="h1">
<xsl:if test="fm/@id">
<xsl:attribute name="id">
<xsl:value-of select="fm/@id"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="fm/@class">
<xsl:attribute name="class">
<xsl:value-of select="fm/@class"/>
</xsl:attribute>
</xsl:if>
</xsl:element>
Note that in order to perform the test, the processor changes the
expression (e.g. 'fm/@class') that returns a node-set, into a Boolean, and
it turns true if the set is not empty (i.e. if there is such an attribute).
If you want to make sure the attribute exists and is not the empty string, use
<xsl:if test="string(fm/@class)">
<xsl:attribute name="class">
<xsl:value-of select="fm/@class"/>
</xsl:attribute>
</xsl:if>
Enjoy,
Wendell
At 12:50 PM 5/8/00 -0700, you wrote:
>I'm trying to add an attribute to an element, something like this:
>
><xsl:element name="h1">
> <xsl:attribute name="id"><xsl:value-of select="fm/@id"/></xsl:attribute>
> <xsl:attribute name="class"<xsl:value-ofselect="fm/@class"
> /></xsl:attribute>
></xsl:element>
>
>Now my question is, how can I detect whether an attribute doesnt' have a
>value (like, say, @id is empty)?
======================================================================
Wendell Piez mailto:wapiez@mulberrytech.com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list