xsl-list
[Top] [All Lists]

AW: CSV instead of white-space

2002-10-29 03:28:46
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(_dot_)h(_dot_)kay(_at_)ntlworld(_dot_)com]
Gesendet am:  Montag, 28. Oktober 2002 18:54
An:   xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 


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

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



<Prev in Thread] Current Thread [Next in Thread>