|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Creating Columnar Table format with XML data
Maria,
Example implementation :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:exsl-common="http://exslt.org/common"
extension-element-prefixes="exsl-common">
<xsl:variable name="var">
<column title="Capital Markets">
<bullet ID="1">
<tip>This is the first tip for Capital Markets.</tip>
</bullet>
<bullet ID="2">
<tip>This is the second tip for Capital Markets</tip>
</bullet>
</column>
<column title="Environment Industry and Company Markets">
<bullet ID="3">
<tip>This is the first tip for Environment, Industry and Company
Markets.</tip>
</bullet>
</column>
</xsl:variable>
<xsl:template match="/">
<xsl:variable name="input-data" select="exsl-common:node-set($var)" />
<table>
<tr>
<xsl:apply-templates select="$input-data" mode="titles" />
</tr>
<xsl:choose>
<xsl:when test="count($input-data/column[1]/bullet) >
count($input-data/column[2]/bullet)">
<xsl:for-each select="$input-data/column[1]/bullet">
<tr>
<td><xsl:apply-templates select="." /></td>
<xsl:variable name="current-pos"
select="count(preceding-sibling::bullet) + 1" />
<td><xsl:apply-templates
select="$input-data/column[2]/bullet[$current-pos]" /></td>
</tr>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$input-data/column[2]/bullet">
<tr>
<td><xsl:apply-templates select="." /></td>
<xsl:variable name="current-pos"
select="count(preceding-sibling::bullet) + 1" />
<td><xsl:apply-templates
select="$input-data/column[1]/bullet[$current-pos]" /></td>
</tr>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</table>
</xsl:template>
<xsl:template match="column" mode="titles">
<td><xsl:value-of select="@title" /></td>
</xsl:template>
</xsl:stylesheet>
In your case, you are probably using a separate input file for
your data, you wont need to use the node-set functions like I have.
Regards,
Kenneth
On 8/13/05, Maria Leggett <maria@xxxxxxxxxxxxxx> wrote:
> I have an xml file that I need to create into a columnar table format. I
> can't figure out how to group the data to display in a column when not all
> the column rows cells will contain data. I am using XSL 1.0
>
> sample xml is:
>
> <column title="Capital Markets">
> <bullet ID="1">
> <tip>This is the first tip for Capital Markets.</tip>
> </bullet>
> <bullet ID="2">
> <tip>This is the second tip for Capital Markets</tip>
> </bullet>
> </column>
> <column title="Environment Industry and Company Markets">
> <bullet ID="3">
> <tip>This is the first tip for Environment, Industry and Company
> Markets.</tip>
> </bullet>
> </column>
>
> The html output should look something like this:
> <table>
> <tr>
> <td>Capital Markets</td>
> <td>Environment, Industry and Company Markets</td>
> </tr>
> <tr>
> <td>This is the first tip for Capital Markets</td>
> <td>This is the first tip for Environment, Industry and Company
Markets</td>
> </tr>
> <tr>
> <td>This is the second tip for Capital Markets</td>
>
> <td></td>
> </tr>
> </table>
>
> Thank you for any help.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








