<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="ISO-8859-1" />
<xsl:param name="rowSeparator"><xsl:text>
</xsl:text></xsl:param>
<xsl:param name="colSeparator"><xsl:text>;</xsl:text></xsl:param>
<xsl:param name="empty"><xsl:text>.</xsl:text></xsl:param> <xsl:param name="title" />
<xsl:template match="/"> <root>
<table>
<xsl:call-template name="stripRows">
<xsl:with-param name="text" select="." />
</xsl:call-template>
</table>
</root>
</xsl:template>
<xsl:template name="stripRows">
<xsl:param name="text" />
<xsl:param name="textBefore" select="substring-before($text, $rowSeparator)" />
<xsl:param name="textAfter" select="substring-after($text, $rowSeparator)" />
<xsl:param name="count" select="1" />
<xsl:if test="$textBefore!=''">
<row>
<xsl:call-template name="stripCols">
<xsl:with-param name="text" select="concat($textBefore, $rowSeparator)" />
<xsl:with-param name="count" select="$count" />
</xsl:call-template>
</row>
</xsl:if>
<xsl:if test="$textAfter!=''">
<xsl:call-template name="stripRows">
<xsl:with-param name="text" select="$textAfter"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="stripCols">
<xsl:param name="text" />
<xsl:param name="textBefore" select="substring-before($text, $colSeparator)" />
<xsl:param name="textAfter" select="substring-after($text, $colSeparator)" />
<xsl:param name="count" />
<xsl:element name="{concat('col', $count)}">
<xsl:choose>
<xsl:when test="not(contains($text, $colSeparator))">
<xsl:value-of select="normalize-space($text)" />
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$textBefore=''">
<xsl:value-of select="$empty" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="normalize-space($textBefore)" />
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
<xsl:if test="$textAfter!=''">
<xsl:call-template name="stripCols">
<xsl:with-param name="text" select="$textAfter"/>
<xsl:with-param name="count" select="$count+1" />
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
|