xsl-list
[Top] [All Lists]

Re: attribute management

2002-11-21 09:33:14
Hi Brian,

I've run into some difficulty attempting to define an attribute.
Essentially, I'm getting excess spaces, and I'd really like them
removed while keeping the formatting the same for readability. Below
is a sample xml and xslt.

XSLT:

  <xsl:template name="uri">
    <xsl:attribute name="background">
      <xsl:choose>
[snip]
      </xsl:choose>/

      <xsl:choose>
[snip]
      </xsl:choose>.

      <xsl:choose>
[snip]
      </xsl:choose>
    </xsl:attribute>
  </xsl:template>

In the above XSLT, you're inserting a bunch of whitespace after the /
and the . in your attribute value. Presumably this is the whitespace
that you want to get rid of?

In XSLT, any text that contains any non-whitespace character is added
to the result. In the above, you're not only adding the /, you're also
adding the line breaks after it and the indentation prior to the next
<xsl:choose>. To limit the whitespace that you add, you should wrap
the non-whitespace characters within <xsl:text> elements:

  <xsl:template name="uri">
    <xsl:attribute name="background">
      <xsl:choose>
        ...
      </xsl:choose>
      <xsl:text>/</xsl:text>
      <xsl:choose>
        ...
      </xsl:choose>
      <xsl:text>.</xsl:text>
      <xsl:choose>
        ...
      </xsl:choose>
    </xsl:attribute>
  </xsl:template>

The <xsl:text> elements separate the characters you're interested in
from the (ignorable) whitespace that follows them. The whitespace-only
text nodes get ignored.
  
Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>