Re: [xsl] "Convert" true/false to 0/1

Subject: Re: [xsl] "Convert" true/false to 0/1
From: Andrew Franz <afranz0@xxxxxxxxxxxxxxxx>
Date: Wed, 28 Sep 2005 06:09:14 +1000
<xsl:template match="data">
<data><xsl:apply-templates /></data>
</xsl:template>

<xsl:template match="foo[(@edible='false')]">
<foo edible="0"><xsl:apply-templates select="@*" /></foo>
</xsl:template>
<xsl:template match="foo">
<foo edible="1"><xsl:apply-templates select="@*" /></foo>
</xsl:template>

<xsl:template match="@edible" />


Aron Bock wrote:


Hello, I'm using ... xalan I think (actually the ant xslt task, which I think uses xalan) ... to process an XML document wich contains some attrs with the value "false". I want the output document to output a "0" for false, 1 for true; in cases where the attr holding true/false is missing, assume true.

The input XML looks like this:

<data>
<foo name="apple" edible="false"/>
<foo name="banana"/>
</data>

I want the output document to look like this:

<data>
<foo name="apple" edible="0"/>
<foo name="banana" edible="1"/>
</data>

edible is defined in an assocuiated XML schema as xs:boolean

At some point in the transform I thought the following would work (assume $foo refers to a <foo>):

<xsl:choose>
<xsl:when test="$foo/@edible and $foo/@edible = false">0</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>

But apparently not. Would somebody suggest a compact way of achieving the above, again asuming $foo.

Thanx

--A

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar  get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/

Current Thread