Please don't ask questions about WD-xsl on this list. The language has been
obsolete for ten years, and it is very hard to find a specification of it.
In XSLT (unlike WD-xsl) using a "match" attribute on an xsl:if element is a
syntax error.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Sumit Patki [mailto:sumitpatki(_at_)gmail(_dot_)com]
Sent: 24 August 2008 19:44
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] XSL If Statement - repost with code
Here is the xsl and xml I am using to write the state matrix
in html o/p only if matrix element has 1 in it.
None of the XSL:IF statements in the below code work.
I think I can change namespace to
"http://www.w3.org/1999/XSL/Transform" instead of
"http://www.w3.org/TR/WD-xsl" since the xsl file doesn't have
any other WD-XSL specific tags. Even though I change the
namespace, it doesn't work. The extension of the xsl file is
.xsl I am not sure what it will be for xslt.
XSL code:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<BODY STYLE="font-family:Arial, helvetica, sans-serif;
FONT-SIZE: x-small">
<table STYLE="border: 1px #000066 outset ; border-collapse:
collapse" width="100%">
<tr>
<td colspan="2">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" STYLE=" font-family: Arial,
Helvetica, sans-serif; font-size: 11px; color: #000000;">
<xsl:apply-templates select="topic/detail/content" />
</td>
</tr>
</table>
<!-- matrix code start -->
<table border="0" width="100%" >
<tr>
<td align="center" STYLE="font-weight: bold;">
<xsl:value-of select="topic/detail/heading" /> </td>
</tr>
</table>
<xsl:for-each select="topic/detail">
<!-- <xsl:if test="matrix > 0"> -->
<xsl:if match=".[matrix=1]">
<table border="2">
<tr>
<td align="center" STYLE="font-weight: bold;">
<xsl:value-of select="topic/detail/tableheading1" /> </td>
<td align="center" STYLE="font-weight: bold;">
<xsl:value-of select="topic/detail/tableheading2" /> </td>
</tr>
<xsl:for-each select="topic/detail/table/state" >
<tr>
<td STYLE="font-weight: bold;vertical-align:
top;"> <xsl:value-of select="statename" /> </td>
<td STYLE="vertical-align: top;">
<xsl:apply-templates select="statedesc" /> </td>
</tr>
</xsl:for-each>
</table>
</xsl:if>
</xsl:for-each>
<!--matrix code end-->
</td>
</tr>
</table>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="topic/detail/content">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="br">
<br><xsl:apply-templates /></br>
</xsl:template>
<xsl:template match="text()"><xsl:value-of /></xsl:template>
</xsl:stylesheet>
XML Code:
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet
type="text/xsl" href="help.xsl" ?> <topic>
<detail>
<pageid>123</pageid>
<name>test</name>
<content>test content <br /></content>
<heading>State Matrix</heading>
<matrix>1</matrix>
<tableheading1>State Code/Name</tableheading1>
<tableheading2>State Description</tableheading2>
<table>
<state>
<statename>01/AL</statename>
<statedesc>Alabama</statedesc>
</state>
<state>
<statename>02/AK</statename>
<statedesc>Alaska</statedesc>
</state>
<state>
<statename>04/AZ</statename>
<statedesc>Arizona</statedesc>
</state>
</table>
</detail>
</topic>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--