Re: [xsl] Is a variable referencing a node

Subject: Re: [xsl] Is a variable referencing a node
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 29 Sep 2008 13:32:11 -0400
Hi,

Trying this again:

At 11:42 AM 9/29/2008, you wrote:
<xsl:variable name="foo">
  <xsl:choose>
    <xsl:when test="$aVar='someFlag'">
      <xsl:value-of select="/path/to/some/element"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="/path/to/another/element"/>
    </xsl:otherwise>
</xsl:variable>
<xsl:choose>
  <xsl:when test="$foo">
    <xsl:value-of select="$foo"/>
  </xsl:when>
  <xsl:otherwise>--</xsl:otherwise>
</xsl:choose>

<xsl:variable name="flagged" select="$aVar='someFlag'"/> <xsl:variable name="foo" select="/path/to/some/element[$flagged] | /path/to/another/element[not($flagged)]"/> <xsl:value-of select="$foo"/> <xsl:if test="not($foo)">--</xsl:if>

In this case, $foo is a node set not an RTF, so we don't fall into the "RTF is true()" trap.

Similarly, we don't need xsl:choose for deciding whether to write the "--", since if $foo doesn't exist, writing its value will write nothing.

The $flagged variable is just syntax sugar to make it a bit clearer what's going on. It is bound to a Boolean.

Cheers,
Wendell


====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx 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 ======================================================================

Current Thread