AW: [xsl] CSV instead of white-space

Subject: AW: [xsl] CSV instead of white-space
From: Delaney Robin <Robin.Delaney@xxxxxxx>
Date: Tue, 29 Oct 2002 11:28:46 +0100
Michael,

Thanks for your reply/help. It almost works :-)

I get all the data right through the hierarchy but once I get to elements
that have "children" themselves the placing of the "," doesn't happen. It
seems to limit itself to direct children of the <Vertrag> (for them it works
perfectly!). Here's a subset of the XML & XSL to explain. Within <Mandant> I
don't see the "," between elements and the same for <Partner> and levels
below. For all the others it's fine. Any Idea ?

Sorry to hassle you directly (don't let it put you off replying in the
future :-) ) and thanks for any help in advance.

- Robin

XML:
	<?xml version="1.0" encoding="ISO-8859-1"?>
	<!DOCTYPE BFZV01 SYSTEM "BFZV01.dtd">
	<?xml-stylesheet type="text/xsl"
href="E:\XML\test\XSLtemplate.xsl"?>
	<BFZV01>
		<Vertrag>
			<Mandant>
				<MandantenID>01</MandantenID>
				<AnbieterNr>1234567890</AnbieterNr>
			</Mandant>
			<ZertifizierungsNr/>
	
<BestandsverwaltungssystemNr>01</BestandsverwaltungssystemNr>
			<VertragsIDintern>01123456</VertragsIDintern>
			<VertragsIDextern>123456</VertragsIDextern>
			<OrgaNr/>
			<InexkassosystemNr>01</InexkassosystemNr>
			<Beitragsjahr>2001</Beitragsjahr>
			<Beitrag waehrungskennzeichen="EUR">150,00</Beitrag>
			<SachbearbeiterID>12345678</SachbearbeiterID>
			<Legitimationsklassevertrag
legitimationsklasse="J"/>
			<Persoenlichedaten>
			<Versicherteperson>
				<Partner>
	
<PartnersystemNr>01</PartnersystemNr>
					<PartnerID>123456789</PartnerID>
					<KundenNr/>
					<Legitimationsklassepartner
legitimationsklasse="J"/>
					<Rolle rolle="Rolle.VP"/>
					<Anrede>Herr</Anrede>
XSL:
	<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
		<xsl:template match="Vertrag">	
			<xsl:for-each select="*">
					<xsl:value-of select="."/>
  					<xsl:if
test="position()!=last()">;</xsl:if>
				</xsl:for-each>
  				<xsl:text>&#13;</xsl:text>
		</xsl:template>
	</xsl:stylesheet>

Output:

 01 1234567890 ;;01;01123456;123456;;01;2001;150,00;12345678;;   01
123456789    Herr




> -----Ursprüngliche Nachricht-----
> Von:	Michael Kay [SMTP:michael.h.kay@xxxxxxxxxxxx]
> Gesendet am:	Montag, 28. Oktober 2002 18:54
> An:	xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Betreff:	RE: [xsl] CSV instead of white-space
> 
> > I'm trying to create a CSV TXT file from an XML and have the 
> > following XSL. There's a large hierarchy of elements under 
> > the "Vertrag" element and I'm trying not to have to select 
> > them individually as the structure may change. My select 
> > statement works and I get all the values with at least 1 
> > whitespace between elements.
> > 
> > Is there a way to either replace the whitespace with a ";" or 
> > to concat a ";" onto my selection ?
> > 
> > <xsl:stylesheet version="1.0" 
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> > 	<xsl:template match="Vertrag">
> > 			<xsl:value-of select="(.)"/>
> > 		<xsl:text>&#13;</xsl:text>
> > 	</xsl:template>
> > </xsl:stylesheet>
> > 
> 
> Try
> <xsl:for-each select="*">
>   <xsl:value-of select="."/>
>   <xsl:if test="position()!=last()">,</xsl:if>
> </xsl:for-each>
> 
> Michael Kay
> Software AG
> home: Michael.H.Kay@xxxxxxxxxxxx
> work: Michael.Kay@xxxxxxxxxxxxxx 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread