Re: [xsl] how red ampersand from the xml file

Subject: Re: [xsl] how red ampersand from the xml file
From: "Joe Fawcett" <joefawcett@xxxxxxxxxxx>
Date: Fri, 25 Mar 2005 18:44:38 -0000
----- Original Message ----- From: "henry human" <henry_human@xxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Friday, March 25, 2005 6:36 PM
Subject: Re: [xsl] how red ampersand from the xml file



yes,this s a good way!

Not sure if that was a yes to file request but here it is:


<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882' xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema' exclude-result-prefixes="s dt rs z">
<xsl:output method="html" encoding="utf-8" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:variable name="fieldData" select="xml/s:Schema/s:ElementType/s:AttributeType[not(@rs:hidden)]" />
<xsl:variable name="columnCount" select="count($fieldData)" />
<xsl:variable name="columnWidth" select="floor(100 div $columnCount)" />
<div id="divMain" style="margin:0px">
<table border="1" width="100%" cols="{$columnCount}">
<thead>
<tr style="font-size:9pt;background-color:#0000cc;color:#ffffff">
<xsl:apply-templates select="$fieldData">
<xsl:with-param name="columnWidth" select="$columnWidth" />
</xsl:apply-templates>
</tr>
</thead>
<xsl:apply-templates select="xml/rs:data">
<xsl:with-param name="fieldData" select="$fieldData" />
<xsl:with-param name="columnCount" select="$columnCount" />
<xsl:with-param name="columnWidth" select="$columnWidth" />
</xsl:apply-templates>
</table>
<br />
</div>
</xsl:template>
<xsl:template match="s:AttributeType">
<xsl:param name="columnWidth" />
<th width="{$columnWidth}%">
<xsl:choose>
<xsl:when test="@rs:name">
<xsl:value-of select="@rs:name" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@name" />
</xsl:otherwise>
</xsl:choose>
</th>
</xsl:template>
<xsl:template match="rs:data">
<xsl:param name="fieldData" />
<xsl:param name="columnCount" />
<xsl:param name="columnWidth" />
<tbody style="color:#0000cc;font-size:9pt;">
<xsl:apply-templates>
<xsl:with-param name="fieldData" select="$fieldData" />
<xsl:with-param name="columnWidth" select="$columnWidth" />
</xsl:apply-templates>
</tbody>
</xsl:template>
<xsl:template match="z:row">
<xsl:param name="fieldData" />
<xsl:param name="columnWidth" />
<xsl:variable name="currentRow" select="." />
<tr style="font-size:9pt;">
<xsl:for-each select="$fieldData">
<td width="{$columnWidth}%">
<xsl:attribute name="align">
<xsl:choose>
<xsl:when test="s:datatype/@dt:type = 'string'">
<xsl:value-of select="'left'" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'right'" />
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:variable name="currentData" select="$currentRow/@*[name() = current()/@name]" />
<xsl:choose>
<xsl:when test="$currentData != ''">
<xsl:choose>
<xsl:when test="s:datatype/@rs:dbtype = 'currency'">
<xsl:value-of select="format-number($currentData, '#,##0')" />
</xsl:when>
<xsl:when test="s:datatype/@rs:dbtype = 'timestamp'">
<xsl:value-of select="concat(substring($currentData, 9, 2), '/', substring($currentData, 6, 2), '/', substring($currentData, 14))" />
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="' '" />
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:for-each>
</tr>
</xsl:template>
</xsl:stylesheet>



Regards


Joe

Current Thread