Subject: AW: 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> </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: 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> </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
|