Hi mhkay,
i got success on XSLT but i am stuck at merging records as both records have same contactid but different AddressId i need to concate AddressId group by contactid.
Following XLST seems to work XMLSpy please give me pointer to concate AddressId
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet exclude-result-prefixes="exslt saxon bpws cis ihmap" version="2.0" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:cis="http://www.approuter.com/schemas/2003/1/UserCallouts/" xmlns:exslt="http://exslt.org/common" xmlns:ihmap="http://www.approuter.com/xmlns/2002/Mapping" xmlns:saxon="http://saxon.sf.net/" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="UTF-8" indent="yes" method="xml"/>
<xsl:template match="/">
<xsl:element name="Contact_CSV" namespace="">
<xsl:element name="header" namespace="">
<xsl:element name="last_name" namespace=""/>
<xsl:element name="first_name" namespace=""/>
<xsl:element name="contactid" namespace=""/>
<xsl:element name="primaryaccountid" namespace=""/>
<xsl:element name="primaryaddressid" namespace=""/>
<xsl:element name="AddressIds" namespace=""/>
<xsl:element name="AccountIds" namespace=""/>
</xsl:element>
<xsl:for-each-group select="Contact_CSV/Contact" group-by=".">
<xsl:sort select="."/>
<xsl:value-of select="."/>
<xsl:for-each-group select="current-group()" group-by="contactid">
<xsl:element name="Contact" namespace="">
<xsl:element name="last_name" namespace="">
<xsl:value-of select="last_name"/>
</xsl:element>
<xsl:element name="first_name" namespace="">
<xsl:value-of select="first_name"/>
</xsl:element>
<xsl:element name="contactid" namespace="">
<xsl:value-of select="contactid"/>
</xsl:element>
<xsl:element name="primaryaccountid" namespace="">
<xsl:value-of select="primaryaccountid"/>
</xsl:element>
<xsl:element name="primaryaddressid" namespace="">
<xsl:value-of select="primaryaddressid"/>
</xsl:element>
<xsl:element name="AddressIds" namespace="">
<xsl:value-of select="AddressIds"/>
</xsl:element>
<xsl:element name="AccountIds" namespace="">
<xsl:value-of select="AccountIds"/>
</xsl:element>
</xsl:element>
</xsl:for-each-group>
</xsl:for-each-group>
</xsl:element>
</xsl:template>
</xsl:stylesheet>