[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

AW: How to XSLT concat string, remove last comma

Subject: AW: How to XSLT concat string, remove last comma
From: "Dr. Patrik Stellmann patrik.stellmann@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 7 Oct 2016 07:34:25 -0000
AW:  How to XSLT concat string
The position() and last() take the list of all CUSTOMER elements as reference
b not just those with bAmount = 0b.

To fix your solution just put the condition in the select:
<xsl:for-each select="CUSTOMERS/CUSTOMER[Amount = 0]">
            <xsl:value-of select="ID"/>
            <xsl:if test="position() != last()">
                        <xsl:text>,</xsl:text>
            </xsl:if>
</xsl:for-each>

With XPath 2.0 you could simplify this to a single xpath expression using
string-join:
<xsl:value-of select="string-join(CUSTOMERS/CUSTOMER[Amount = 0]/ID, ',')"/>

Patrik



------------------------------------------------------------------
Systemarchitektur & IT-Projekte
Tel: +49 40 33449-1142
Fax: +49 40 33449-1400
E-Mail: Patrik.Stellmann@xxxxxxxxx<mailto:Patrik.Stellmann@xxxxxxxxx>

[https://www.gdv-dl.de/fileadmin/user_upload/bild/Bilder_auf_Website/Zentralr
uf/160921_Entwurf_DKM-Banner_Signatur_65_small.jpg]<http://www.die-leitmesse.
de/zentralruf-autoversicherer/2016>
Von: Rahul Singh rahulsinghindia15@xxxxxxxxx
[mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx]
Gesendet: Freitag, 7. Oktober 2016 09:23
An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Betreff:  How to XSLT concat string, remove last comma

Hi,

I need to build up a string using XSLT and separate each string with a comma
but not include a comma after the last string. Here i have mentioned our XSL
but i am geetting comma in my output.

Input:

<?xml version="1.0"?>
<CUSTOMERS>
    <CUSTOMER>
        <ID>441</ID>
        <Item_no>24</Item_no>
        <Amount>0</Amount>
    </CUSTOMER>
    <CUSTOMER>
        <ID>900817</ID>
        <Item_no>28</Item_no>
        <Amount>0</Amount>
    </CUSTOMER>
    <CUSTOMER>
        <ID>00081</ID>
        <Item_no>4</Item_no>
        <Amount>1</Amount>
    </CUSTOMER>
</CUSTOMERS>


XSL:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <CUSTOMERS>
            <CUSTOMER>
                <Id>
                    <xsl:for-each select="CUSTOMERS/CUSTOMER">
                        <xsl:if test="Amount = 0">
                            <xsl:value-of select="ID"/>
                            <xsl:if test="position() != last()">
                                <xsl:text>,</xsl:text>
                            </xsl:if>
                        </xsl:if>
                    </xsl:for-each>
                </Id>
            </CUSTOMER>
        </CUSTOMERS>
    </xsl:template>
</xsl:stylesheet>


My Output:

<?xml version="1.0" encoding="UTF-8"?>
<CUSTOMERS>
   <CUSTOMER>
      <Id>441,900817,</Id>
   </CUSTOMER>
</CUSTOMERS>

Expected output:

<?xml version="1.0" encoding="UTF-8"?>
<CUSTOMERS>
   <CUSTOMER>
      <Id>441,900817</Id>
   </CUSTOMER>
</CUSTOMERS>
XSL-List info and archive<http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe<-list/2718916> (by email<>)
GDV Dienstleistungs-GmbH & Co. KG
GlockengieCerwall 1
D-20095 Hamburg
www.gdv-dl.de

Sitz und Registergericht: Hamburg
HRA 93 894
USt.-IdNr : DE 205183123

KomplementC$rin:
GDV Beteiligungsgesellschaft mbH
Sitz und Registergericht: Hamburg
HRB 71 153

GeschC$ftsfC<hrer:
Dr. Jens Bartenwerfer
Michael Bathke

------------------------------------------------------------------
Diese E-Mail und alle AnhC$nge enthalten vertrauliche und/oder rechtlich
geschC<tzte Informationen. Wenn Sie nicht der richtige Adressat sind oder
diese E-Mail irrtC<mlich erhalten haben, informieren Sie bitte sofort den
Absender und vernichten Sie diese E-Mail. Das unerlaubte Kopieren sowie die
unbefugte Weitergabe der E-Mail ist nicht gestattet.

This e-mail and any attached files may contain confidential and/or privileged
information. If you are not the intended recipient (or have received this
e-mail in error) please notify the sender immediately and destroy this e-mail.
Any unauthorised copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.