on 05-11-2016 7:06 AM
Hi
Could you please provide xslt code to generate below target structure.
Source:
MT_1
Record 1..unbound
Name 0..1
Hair_Colour 0..1
Address 0..1
Street 0..1
D.No 0..1
Target:
Target structure is same as source structure. Need to create multiple files by grouping all people based on their hair color.
for example single message with all the people who has white hair and one more message for black hair people somthing like that.
Thanks,
Krish
Hi, Krish!
Source message:
<ns1:MT_1 xmlns:ns1="urn://my_namespace">
<Record>
<Name>John Doe</Name>
<Hair_Colour>Black</Hair_Colour>
<Address>
<Street>John Doe Street</Street>
<D_No>1</D_No>
</Address>
</Record>
<Record>
<Name>Ann Doe</Name>
<Hair_Colour>White</Hair_Colour>
<Address>
<Street>Ann Doe Street</Street>
<D_No>2</D_No>
</Address>
</Record>
<Record>
<Name>James Kinn</Name>
<Hair_Colour>Brown</Hair_Colour>
<Address>
<Street>James Kinn Street</Street>
<D_No>3</D_No>
</Address>
</Record>
<Record>
<Name>Steve Lee</Name>
<Hair_Colour>White</Hair_Colour>
<Address>
<Street>Steve Lee Street</Street>
<D_No>4</D_No>
</Address>
</Record>
<Record>
<Name>Mary Ann</Name>
<Hair_Colour>Brown</Hair_Colour>
<Address>
<Street>Mary Ann Street</Street>
<D_No>5</D_No>
</Address>
</Record>
</ns1:MT_1>
XSLT transformation:
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"
xmlns:ns1="urn://my_namespace">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/*">
<ns0:Messages>
<xsl:apply-templates/>
</ns0:Messages>
</xsl:template>
<xsl:template match="text()"/>
<xsl:template match="//Record[not(Hair_Colour/text()=preceding::Hair_Colour/text())]">
<xsl:variable name="HC" select="Hair_Colour"/>
<ns0:Message>
<ns1:MT_1>
<xsl:for-each select="../Record[Hair_Colour/text()=$HC]">
<xsl:copy-of select="."/>
</xsl:for-each>
</ns1:MT_1>
</ns0:Message>
</xsl:template>
</xsl:stylesheet>
Transformation result:
<ns0:Messages xmlns:ns1="urn://my_namespace" xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message>
<ns1:MT_1>
<Record>
<Name>John Doe</Name>
<Hair_Colour>Black</Hair_Colour>
<Address>
<Street>John Doe Street</Street>
<D_No>1</D_No>
</Address>
</Record>
</ns1:MT_1>
</ns0:Message>
<ns0:Message>
<ns1:MT_1>
<Record>
<Name>Ann Doe</Name>
<Hair_Colour>White</Hair_Colour>
<Address>
<Street>Ann Doe Street</Street>
<D_No>2</D_No>
</Address>
</Record>
<Record>
<Name>Steve Lee</Name>
<Hair_Colour>White</Hair_Colour>
<Address>
<Street>Steve Lee Street</Street>
<D_No>4</D_No>
</Address>
</Record>
</ns1:MT_1>
</ns0:Message>
<ns0:Message>
<ns1:MT_1>
<Record>
<Name>James Kinn</Name>
<Hair_Colour>Brown</Hair_Colour>
<Address>
<Street>James Kinn Street</Street>
<D_No>3</D_No>
</Address>
</Record>
<Record>
<Name>Mary Ann</Name>
<Hair_Colour>Brown</Hair_Colour>
<Address>
<Street>Mary Ann Street</Street>
<D_No>5</D_No>
</Address>
</Record>
</ns1:MT_1>
</ns0:Message>
</ns0:Messages>
Regards, Evgeniy.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.