|
Subject: [xsl] Creating Fixed-Width Text Data From: "Michael Peet" <mjpeet@xxxxxxxxxxx> Date: Tue, 14 Jan 2003 09:02:16 -0500 |
<fields> <field> <name>foo</name> <type>N</type> <length>6</length> <value>123</value> </field> <field> <name>bar</name> <type>C</type> <length>12</length> <value>hello</value> </field> <field> <name>baz</name> <type>N</type> <length>2</length> <value/> </field> </fields>
<xsl:template match="/"> <xsl:apply-templates select="fields"/> </xsl:template>
<xsl:template match="fields"> <xsl:apply-templates select="field"/> </xsl:template>
<xsl:template match="field[type = 'N']">
<xsl:call-template name="pad-number">
<xsl:with-param name="length" select="length"/>
<xsl:with-param name="value" select="value"/>
</xsl:call-template>
</xsl:template> <xsl:template match="field[type = 'C']">
<xsl:call-template name="pad-string">
<xsl:with-param name="length" select="length"/>
<xsl:with-param name="value" select="value"/>
</xsl:call-template>
</xsl:template> <xsl:template name="pad-string">
<xsl:param name="length"/>
<xsl:param name="value"/>
<xsl:param name="pos" select="string-length($value)"/>
<xsl:choose>
<xsl:when test="$pos < $length">
<xsl:call-template name="pad-string">
<xsl:with-param name="length" select="$length"/>
<xsl:with-param name="value" select="concat($value, ' ')"/>
<xsl:with-param name="pos" select="$pos + 1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template> <xsl:template name="pad-number">
<xsl:param name="length"/>
<xsl:param name="value"/>
<xsl:param name="pos" select="string-length($value)"/>
<xsl:choose>
<xsl:when test="$pos < $length">
<xsl:call-template name="pad-number">
<xsl:with-param name="length" select="$length"/>
<xsl:with-param name="value" select="concat('0', $value)"/>
<xsl:with-param name="pos" select="$pos + 1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] listing unique attributes, Zack Brown | Thread | RE: [xsl] Creating Fixed-Width Text, Peter Van de Water |
| RE: [xsl] generating <a href="#sect, Sherzod Ruzmetov | Date | Re: [xsl] the fo:block thing, Tony Graham |
| Month |