Subject: Re: "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/
|