Quantcast
Channel: BizTalk Server General Forum
Viewing all articles
Browse latest Browse all 872

Splitting Message using Custom XSLT code in BizTalk Map

$
0
0

Hi all,

I am having bit of a diffilculty with XSLT coding in BizTalk Map.

I have a Input message as follows extracted using SQL adapter ;-

<RootNode><ArrayOfRecord><Record><Element1>ABCD</Element1><Element2>INR</Element2></Record><Record><Element1>WXYZ</Element1><Element2>INR</Element2></Record><Record><Element1>ABCD</Element1><Element2>INR</Element2></Record><Record><Element1>WXYZ</Element1><Element2>INR</Element2></Record></ArrayOfRecord></RootNode>

Which I want split based on value of 'Element1' i.e. something similar to following ;-

Output file 1 :-<RootNode><ArrayOfRecord><Record><Element1>ABCD</Element1><Element2>INR</Element2></Record><Record><Element1>ABCD</Element1><Element2>INR</Element2></Record></ArrayOfRecord></RootNode>
Output file 2 :-<RootNode><ArrayOfRecord><Record><Element1>WXYZ</Element1><Element2>INR</Element2></Record><Record><Element1>WXYZ</Element1><Element2>INR</Element2></Record></ArrayOfRecord></RootNode>


I have created xslt as ;-

<xsl:key name="k1" match="Element1" use="."/><xsl:template match="/"><xsl:apply-templates select="RootNode/ArrayOfRecord/Record/Element1[generate-id() = generate-id(key('k1', .)[1])]" /></xsl:template><xsl:template match="Element1"><RootNode><ArrayOfRecord><xsl:variable name="currentElement1" select="."/><xsl:for-each select="key('k1', $currentElement1)"><Record><Element1><xsl:value-of select="$currentElement1"/></Element1><Element2><xsl:value-of select="../Element2/text()"/></Element2><Record></xsl:for-each></ArrayOfRecord></RootNode>

But this XSLT is producing output as follows ;-

<RootNode><ArrayOfRecord><Record><Element1>ABCD</Element1><Element2>INR</Element2></Record><Record><Element1>ABCD</Element1><Element2>INR</Element2></Record></ArrayOfRecord></RootNode><RootNode><ArrayOfRecord><Record><Element1>WXYZ</Element1><Element2>INR</Element2></Record><Record><Element1>WXYZ</Element1><Element2>INR</Element2></Record></ArrayOfRecord></RootNode>

How do I split this output message into two ? Please help.

XSLT version is 1.0


Viewing all articles
Browse latest Browse all 872

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>