on 06-22-2010 1:58 PM
Hi guys
I am new to XSLT and is hoping someone here can help.
My XSLT currently looks like this:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ALL_ORDER>
<xsl:apply-templates select="//ORDER"/>
</ALL_ORDER>
</asx:values>
</asx:abap>
</xsl:template>
<xsl:template match="ORDER">
<ALLITEMS> <!This element name is not relevent... needed to just group the loop>
<DESCRIPTION>
<xsl:value-of select="DESCRIPTION"/>
</DESCRIPTION>
<ID>
<xsl:value-of select="ID"/>
</ID>
<ORDERSTATUS>
<xsl:value-of select="ORDERSTATUS"/>
</ORDERSTATUS>
<ORDERALL>
<xsl:for-each select="LT_ZORDER_I">
<LT_ZORDER_I> <!This element name is not relevent... needed to just group the loop>
<ARTIKEL>
<xsl:value-of select="ARTIKEL"/>
</ARTIKEL>
<DAFNR>
<xsl:value-of select="DAFNR"/>
</DAFNR>
<ARTNR>
<xsl:value-of select="ARTNR"/>
</ARTNR>
<TOTAL_KART>
<xsl:value-of select="TOTAL_KART"/>
</TOTAL_KART>
<TOTAL_MARG>
<xsl:value-of select="TOTAL_MARG"/>
</TOTAL_MARG>
</LT_ZORDER_I>
</xsl:for-each>
</ORDERALL>
</ALLITEMS>
</xsl:template>
</xsl:transform>
and this is my XML
<?xml version="1.0" encoding="UTF-8" ?>
- <data>
<DESCRIPTION>Description</DESCRIPTION>
<ID>34567</ID>
<KAMPANJ>News</KAMPANJ>
<KUND>Customer AB</KUND>
<ANSVARIG>Responsible</ANSVARIG>
<MOBILNUMMER>12345677</MOBILNUMMER>
<ORDERSTATUS>Orderstatus</ORDERSTATUS>
- <LT_ZORDER_I>
- <DATA xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup">
<ARTIKEL>Item 1</ARTIKEL>
<DAFNR>12344</DAFNR>
<ARTNR>40000018-8</ARTNR>
<DFP>8</DFP>
<INS />
<UT />
<MARG />
<MARGKR />
<MULTIST />
<MULTIUT />
<MULTIMARG />
<MULTIKR />
<P1 />
<P2 />
<P3 />
<P4 />
<P5 />
<P6 />
<P7 />
<TOTAL_KART />
<TOTAL_MARG>0</TOTAL_MARG>
<MARG_MULTI>0</MARG_MULTI>
</DATA>
- <DATA xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup">
<ARTIKEL>Item 2</ARTIKEL>
<DAFNR>12345</DAFNR>
<ARTNR>71243</ARTNR>
<DFP>50</DFP>
<INS />
<UT />
<MARG />
<MARGKR />
<MULTIST />
<MULTIUT />
<MULTIMARG />
<MULTIKR />
<P1 />
<P2 />
<P3 />
<P4 />
<P5 />
<P6 />
<P7 />
<TOTAL_KART />
<TOTAL_MARG>0</TOTAL_MARG>
<MARG_MULTI>0</MARG_MULTI>
</DATA>
- <DATA xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup">
<ARTIKEL>item 3</ARTIKEL>
<DAFNR>12346</DAFNR>
<ARTNR>81243</ARTNR>
<DFP>6</DFP>
<INS />
<UT />
<MARG />
<MARGKR />
<MULTIST />
<MULTIUT />
<MULTIMARG />
<MULTIKR />
<P1 />
<P2 />
<P3 />
<P4 />
<P5 />
<P6 />
<P7 />
<TOTAL_KART />
<TOTAL_MARG>0</TOTAL_MARG>
<MARG_MULTI>0</MARG_MULTI>
</DATA>
</LT_ZORDER_I>
</data>
I am having problem for it to loop through the items/LT_ZORDER_I records.
Anyone see why my loop is not working?
Hi Vinconn,
Your xsl should be like this for your input:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ALL_ORDER>
<xsl:apply-templates select="//data"/>
</ALL_ORDER>
</asx:values>
</asx:abap>
</xsl:template>
<xsl:template match="data">
<ALLITEMS> <!--This element name is not relevent... needed to just group the loop-->
<DESCRIPTION>
<xsl:value-of select="DESCRIPTION"/>
</DESCRIPTION>
<ID>
<xsl:value-of select="ID"/>
</ID>
<ORDERSTATUS>
<xsl:value-of select="ORDERSTATUS"/>
</ORDERSTATUS>
<ORDERALL>
<xsl:for-each select="LT_ZORDER_I/DATA">
<LT_ZORDER_I> <!--This element name is not relevent... needed to just group the loop-->
<ARTIKEL>
<xsl:value-of select="ARTIKEL"/>
</ARTIKEL>
<DAFNR>
<xsl:value-of select="DAFNR"/>
</DAFNR>
<ARTNR>
<xsl:value-of select="ARTNR"/>
</ARTNR>
<TOTAL_KART>
<xsl:value-of select="TOTAL_KART"/>
</TOTAL_KART>
<TOTAL_MARG>
<xsl:value-of select="TOTAL_MARG"/>
</TOTAL_MARG>
</LT_ZORDER_I>
</xsl:for-each>
</ORDERALL>
</ALLITEMS>
</xsl:template>
</xsl:transform>
Then your output will be like this as expected by you:
<?xml version="1.0" encoding="UTF-8"?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
<asx:values>
<ALL_ORDER>
<ALLITEMS>
<DESCRIPTION>Description</DESCRIPTION>
<ID>34567</ID>
<ORDERSTATUS>Orderstatus</ORDERSTATUS>
<ORDERALL>
<LT_ZORDER_I>
<ARTIKEL>Item 1</ARTIKEL>
<DAFNR>12344</DAFNR>
<ARTNR>40000018-8</ARTNR>
<TOTAL_KART/>
<TOTAL_MARG>0</TOTAL_MARG>
</LT_ZORDER_I>
<LT_ZORDER_I>
<ARTIKEL>Item 2</ARTIKEL>
<DAFNR>12345</DAFNR>
<ARTNR>71243</ARTNR>
<TOTAL_KART/>
<TOTAL_MARG>0</TOTAL_MARG>
</LT_ZORDER_I>
<LT_ZORDER_I>
<ARTIKEL>item 3</ARTIKEL>
<DAFNR>12346</DAFNR>
<ARTNR>81243</ARTNR>
<TOTAL_KART/>
<TOTAL_MARG>0</TOTAL_MARG>
</LT_ZORDER_I>
</ORDERALL>
</ALLITEMS>
</ALL_ORDER>
</asx:values>
</asx:abap>
Here in the output you have one header and the three items. So we are looping for each data you have those many number of items in output. Hope this is what you are expecting.
Regards,
---Satish
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
> I am having problem for it to loop through the items/LT_ZORDER_I records.
I do not see a node named items.
I do also not see node named ORDER.
Maybe you let us know, what target structure you want achieve?
> Anyone see why my loop is not working?
What do you mean be "not working"?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Not sure hwo I can explain it but.
For every header there can be several items.
Header = Description, ID, Kampanj, Kund, Ansvarig, Mobilnummer, Orderstatus
Item1 = Artikel, Dafnr, Artnr, DFP, INS, UT, MARG, MARGKR, MULTIST, MULTIUT, MULTIMARG, MULTITKR, P1, P2, P3, P4, P5, P6, P7, Total_kart, Total_marg, Marg_Multi
Item2 = Artikel, Dafnr, Artnr, DFP, INS, UT, MARG, MARGKR, MULTIST, MULTIUT, MULTIMARG, MULTITKR, P1, P2, P3, P4, P5, P6, P7, Total_kart, Total_marg, Marg_Multi
Item3 = Artikel, Dafnr, Artnr, DFP, INS, UT, MARG, MARGKR, MULTIST, MULTIUT, MULTIMARG, MULTITKR, P1, P2, P3, P4, P5, P6, P7, Total_kart, Total_marg, Marg_Multi
Thanks
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
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.