Hi,
Using XSLT 2.0:
<xsl:template name="fixed-field">
<xsl:param name="str" select="string(.)"/>
<xsl:param name="length" as="xs:integer" select="10"/>
<xsl:value-of select="substring($str,1,$length)"/>
<xsl:for-each select="1 to ($length - string-length($str))">
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="id">
<xsl:call-template name="fixed-field"/>
</xsl:template>
<xsl:template match="type">
<xsl:call-template name="fixed-field">
<xsl:with-param name="length" select="25"/>
</xsl:call-template>
</xsl:template>
Untested.
Cheers, Wendell
Wendell Piez | http://www.wendellpiez.com
XML | XSLT | electronic publishing
Eat Your Vegetables
_____oo_________o_o___ooooo____ooooooo_^
On Thu, Sep 19, 2013 at 11:14 AM, a kusa <akusa8(_at_)gmail(_dot_)com> wrote:
Hello:
Is it possible to convert an xml file into a fixed length format?
For example, if I have an xml file as follows:
<products>
<product>
<id>12345</id>
<type>Toy</type>
<description> This is a soft toy</description>
</product>
<product>
<id>6789</id>
<type>Car</type>
<description> This is a car</description>
</product>
</products>
Now, I want to convert this into a fixed length format based on
specific string lengths. So if I defined id to be a fixed length of
10, type to be a fixed length of 25, and description to be a fixed
length of 50, I want a text file with these values, and the rest of
the spaces must be filled in such a way so as to meet the length
criteria. That means, if id was only 5 digits long, there should be
spaces for another 5 characters that total to 10, and the value for
type must start on the 11th digit.
Is this possible with XSLT?
Any help is appreciated.
--~------------------------------------------------------------------
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>
--~--