Re: Defining an attribute only if not empty

Subject: Re: Defining an attribute only if not empty
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 08 May 2000 15:30:47 +0100

This is pretty straightforward:

<xsl:element name="h1">
  <xsl:if test="fm/@id">
    <xsl:attribute name="id">
      <xsl:value-of select="fm/@id"/>
  <xsl:if test="fm/@class">
    <xsl:attribute name="class">
      <xsl:value-of select="fm/@class"/>

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"/>


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>
>Now my question is, how can I detect whether an attribute doesnt' have a
>value (like, say, @id is empty)?

Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
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:

Current Thread