This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Converting XML to Fixed Length Text Data
- From: "Garvin Franco" <garvin_franco at hotmail dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 28 Mar 2002 14:32:24 -0500
- Subject: Re: [xsl] Converting XML to Fixed Length Text Data
- Reply-to: xsl-list at lists dot mulberrytech dot com
Ok David, got it, works like a charm, but what happens if one of the
elements is optional and not passed on the source xml file? Wouldn't this
throw off the position of the fields which follow? ( e.g. if child2 was not
on the source xml file, what impact would this have on the output? Wouldn't
the start positiosn of the fields that follow be affected? )
Garvin
>From: David Carlisle <davidc@nag.co.uk>
>Reply-To: xsl-list@lists.mulberrytech.com
>To: xsl-list@lists.mulberrytech.com
>Subject: Re: [xsl] Converting XML to Fixed Length Text Data
>Date: Mon, 25 Mar 2002 21:28:28 GMT
>
> David thanks for the response, but I am not quite clear on the solution.
> 1) How does the attribute "att1" vs the element "child1" know where to
> position themselves on the output file? Shouldn't positional info be
> declared somewhere?
>it is "declared" by the length of the string variable declared for each
>field. If $child2 starts off as a string of 20 spaces and
>you do
><xsl:value-of select="."/>
><xsl:value-of select="substring($child2,string-length(.))"/>
>in the template for child2, then you will get the character data
>of the element followed by enough spaces to pad the total to 20
>characters (as long as the element had less than 20 characters)
>
>
> 2) What about the element <xsl:text>, is this not required?
>xsl:text is in favt never required, but here you don't need it as you
>are not adding any literal text, only some spaces, which you can enter
>with xsl:value-of.
>
>So apart from the template I showed, you just need the settings of the
>original strings to give the widths of each field, plus the template for
>teh parent element needs to give a line break after each row, which you
>can do with xsl:text (<xsl:text>
</xsl:text>) or value-of
>(<xsl:value-of select="'
'"/>)
>
>David
>
>_____________________________________________________________________
>This message has been checked for all known viruses by Star Internet
>delivered through the MessageLabs Virus Scanning Service. For further
>information visit http://www.star.net.uk/stats.asp or alternatively call
>Star Internet for details on the Virus Scanning Service.
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
_________________________________________________________________
Send and receive Hotmail on your mobile device: http://mobile.msn.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list