Subject:Dynamic Element Sequence to single attribute Author:John-Orr Hanna Date:22 Jul 2005 09:50 AM
Hi guys,
I have a source XSD similar to this element arrangement
<Accounts>
<Account_number>100</Account_number>
<Account_number>101</Account_number>
<Account_number>102</Account_number>
<Account_number>103</Account_number>
.............................. <!-- there may be X number of <Account_number> elements
<Account_number> XXXXX</Account_number>
</Accounts>
I need to translate it to the following attribute format
<Accounts = 100,101,102,103,.........XXXXX/>
I have looked through the docs but am still at a loss as to how to complete this .......... Is it possible to do this with the graphical tools or is it a case of coding a little piece ???
Subject:Dynamic Element Sequence to single attribute Author:(Deleted User) Date:22 Jul 2005 10:24 AM
mapper can help you do this with a little extra work in code.
1.link from Account_number to your target attribute.
2.create a for-each block by right click on the middle pane.
link Account_number into the left port of for-each block
link the right port of for-each block to the middle port of the link you created in step 1.
3.in the code pane, you should see a <xsl:value-of select='.'/>.
add the following code after it: <xsl:text>,</xsl:text>
if you don't want to go through the above steps, below is the code you can use directly. it is generated by mapper
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Account>
<xsl:attribute name="account">
<xsl:for-each select="Accounts/Account_number"><xsl:value-of select="."/>
<xsl:text>,</xsl:text>
</xsl:for-each>
</xsl:attribute>
</Account>
</xsl:template>
</xsl:stylesheet>