cancel
Showing results for 
Search instead for 
Did you mean: 

XSLT mapping does not pass values

Former Member
0 Kudos

Hi

I have the following source structure:

<?xml version="1.0" encoding="UTF-8"?>

<ns0:MT_Source_Order xmlns:ns0="urn:local:orders">

<OrderHeader>

<OrderNr>1</OrderNr>

<Buyer>2</Buyer>

</OrderHeader>

<OrderLine>

<Item>A</Item>

<Quantity>B</Quantity>

</OrderLine>

<OrderLine>

<Item>C</Item>

<Quantity>D</Quantity>

</OrderLine>

</ns0:MT_Source_Order>

and i created this XSLT:

<?xml version= '1.0' encoding="UTF-8"?>

<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" xmlns:ns0 = "urn:local:orders" xmlns:ns1 = "urn:local:orders">

<xsl:template match = "/">

<ns1:MT_Target_Order>

<Orders>

<xsl:for-each select="ns0:MT_Source_Order/OrderLine">

<Order>

<Ordernr>

<xsl:value-of select="MT_Source_Order/OrderHeader/OrderNr"/>

</Ordernr>

<Buyer>

<xsl:value-of select="MT_Source_Order/OrderHeader/Buyer"/>

</Buyer>

<Item>

<xsl:value-of select="MT_Source_Order/OrderLine/Item"/>

</Item>

<Quantity>

<xsl:value-of select="MT_Source_Order/OrderLine/Quantity"/>

</Quantity>

</Order>

</xsl:for-each>

</Orders>

</ns1:MT_Target_Order>

</xsl:template>

</xsl:stylesheet>

I created all objects up to the Operation Mapping.

When i test my xslt mapping the target structure comes out as:

<?xml version="1.0" encoding="UTF-8"?>

<ns1:MT_Target_Order xmlns:ns0="urn:local:orders" xmlns:ns1="urn:local:orders">

<Orders>

<Order>

<Ordernr/>

<Buyer/>

<Item/>

<Quantity/>

</Order>

<Order>

<Ordernr/>

<Buyer/>

<Item/>

<Quantity/>

</Order>

</Orders>

</ns1:MT_Target_Order>

The xml structure is OK, but i wanted the paired values in the output also. (order 1 = 12AB, order 2 = 12CD)

(I have also tried to insert variables in my XSLT but that didnt work either)

What do i need to change in my XSLT to pass the values to the target structure?

Thx

Robert

Accepted Solutions (1)

Accepted Solutions (1)

rajasekhar_reddy14
Active Contributor
0 Kudos

try below code,

<?xml version= '1.0' encoding="UTF-8"?>
<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" xmlns:ns0 = "urn:local:orders" xmlns:ns1 = "urn:local:orders">
<xsl:template match = "/">
<ns1:MT_Target_Order>
<Orders>
<xsl:for-each select="OrderLine">
<Order>
<Ordernr>
<xsl:value-of select="OrderHeader/OrderNr"/>
</Ordernr>
<Buyer>
<xsl:value-of select="OrderHeader/Buyer"/>
</Buyer>
<Item>
<xsl:value-of select="OrderLine/Item"/>
</Item>
<Quantity>
<xsl:value-of select="OrderLine/Quantity"/>
</Quantity>
</Order>
</xsl:for-each></Orders>
</ns1:MT_Target_Order>
</xsl:template>
</xsl:stylesheet>

Former Member
0 Kudos

Hi Raja,

Didnt work i'm afraid.

Output with your XSLT is:

<?xml version="1.0" encoding="UTF-8"?>

<ns1:MT_Target_Order xmlns:ns0="urn:local:orders" xmlns:ns1="urn:local:orders">

<Orders/>

</ns1:MT_Target_Order>

kr

Robert

Former Member
0 Kudos

Please try this

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="urn:local:orders" xmlns:ns1="urn:local:orders">

<xsl:template match="/">

<ns1:MT_Target_Order>

<Orders>

<xsl:for-each select="ns0:MT_Source_Order/OrderLine">

<Order>

<Ordernr>

<xsl:value-of select="../OrderHeader/OrderNr"/>

</Ordernr>

<Buyer>

<xsl:value-of select="../OrderHeader/Buyer"/>

</Buyer>

<Item>

<xsl:value-of select="Item"/>

</Item>

<Quantity>

<xsl:value-of select="Quantity"/>

</Quantity>

</Order>

</xsl:for-each>

</Orders>

</ns1:MT_Target_Order>

</xsl:template>

</xsl:stylesheet>

Former Member
0 Kudos

Perfect.

Former Member
0 Kudos

Hi Ciochinah

I also managed to get the same result in a graphical mapping, using UseOneAsMany function.

However I also wanted to try it in XSLT and got stuck, so I posted question.

I used some basic XSLT blogs to create my XSLT.

Can you maybe advice on a good website or blog or something where i can find materials that can take me to the next level in XSLT programming. So I can learn the difference between what i did and what you advised?

Thx.

Robert

Former Member
0 Kudos

Hi Robert,

I think you just need to work with it.

I would recommend: [http://www.w3schools.com/Xsl/default.asp] as the main site and [http://www.zvon.org/comp/m/xslt.html] for the functions and abit more info.

Hope this helps,

Horia

Answers (0)