Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

XML to ABAP

Former Member
0 Likes
535

Hi,

How can i convert XML to abap internal table using XSL.

My xsl can't convert XML to internal table using XML1, but can convert using XML2

I wan't convert xml1 to abap using my XSL, how to change my xsl

My xml1

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

<string xmlns="http://localhost/CigaTransService/">

<NewDataSet>

<Status Result="ok"/>

<c_xyorder>

<LIST_ID>12713598</LIST_ID>

<ORDER_ID>100755086</ORDER_ID>

<SMEM_ID>12320101</SMEM_ID>

<SNAME>工业公司</SNAME>

<BMEM_ID>11350201</BMEM_ID>

<BNAME>福建省烟草公司厦门市公司</BNAME>

<ORDER_DATE>2007-12-06T14:56:51.0000000+08:00</ORDER_DATE>

<DELI_DATE>2007年下半年</DELI_DATE>

<DELI_DATE_S>2007-07-01T00:00:00.0000000+08:00</DELI_DATE_S>

<DELI_DATE_E>2007-12-31T00:00:00.0000000+08:00</DELI_DATE_E>

<SBEHALF>钱</SBEHALF>

<BBEHALF>李</BBEHALF>

<MBEHALF>张</MBEHALF>

<TCOMMENT/>

<KIND>工商</KIND>

<PKIND>省际</PKIND>

<HASRIGHT>1</HASRIGHT>

<CHARG_DATE>2007-12-06T15:20:59.0000000+08:00</CHARG_DATE>

<QTOTAL>25.0000</QTOTAL>

<SNODE>江苏省</SNODE>

<BNODE>福建省</BNODE>

<SUBKIND>购销</SUBKIND>

</c_xyorder>

<c_xyordpr>

<LIST_ID>12869085</LIST_ID>

<ORDER_ID>100767307</ORDER_ID>

<ID>2</ID>

<PRODUCT_ID>69010281120242032000100</PRODUCT_ID>

<QUANTITY>775.0000</QUANTITY>

<PRICE>5000.0000</PRICE>

<PLATE>(精品)</PLATE>

<SUPPLIER_ID>20320001</SUPPLIER_ID>

<SUPPLIER>中烟工业公司</SUPPLIER>

<REGION>江苏省</REGION>

<TYPE>烤烟型</TYPE>

<TLEN>84.0</TLEN>

<PACKAGE_>全硬</PACKAGE_>

<CLASS>一类</CLASS>

<MPLATE>ddd</MPLATE>

<IS_FAMOUS>1</IS_FAMOUS>

<INITIAL_QUANTITY>7.0000</INITIAL_QUANTITY>

<OTHER_INITIAL_QUANTITY>7.0000</OTHER_INITIAL_QUANTITY>

</c_xyordpr>

</NewDataSet>

</string>

My xml2

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

<string>

<NewDataSet>

<Status Result="ok"/>

<c_xyorder>

<LIST_ID>12713598</LIST_ID>

<ORDER_ID>100755086</ORDER_ID>

<SMEM_ID>12320101</SMEM_ID>

<SNAME>工业公司</SNAME>

<BMEM_ID>11350201</BMEM_ID>

<BNAME>福建省烟草公司厦门市公司</BNAME>

<ORDER_DATE>2007-12-06T14:56:51.0000000+08:00</ORDER_DATE>

<DELI_DATE>2007年下半年</DELI_DATE>

<DELI_DATE_S>2007-07-01T00:00:00.0000000+08:00</DELI_DATE_S>

<DELI_DATE_E>2007-12-31T00:00:00.0000000+08:00</DELI_DATE_E>

<SBEHALF>钱</SBEHALF>

<BBEHALF>李</BBEHALF>

<MBEHALF>张</MBEHALF>

<TCOMMENT/>

<KIND>工商</KIND>

<PKIND>省际</PKIND>

<HASRIGHT>1</HASRIGHT>

<CHARG_DATE>2007-12-06T15:20:59.0000000+08:00</CHARG_DATE>

<QTOTAL>25.0000</QTOTAL>

<SNODE>江苏省</SNODE>

<BNODE>福建省</BNODE>

<SUBKIND>购销</SUBKIND>

</c_xyorder>

<c_xyordpr>

<LIST_ID>12869085</LIST_ID>

<ORDER_ID>100767307</ORDER_ID>

<ID>2</ID>

<PRODUCT_ID>69010281120242032000100</PRODUCT_ID>

<QUANTITY>775.0000</QUANTITY>

<PRICE>5000.0000</PRICE>

<PLATE>(精品)</PLATE>

<SUPPLIER_ID>20320001</SUPPLIER_ID>

<SUPPLIER>中烟工业公司</SUPPLIER>

<REGION>江苏省</REGION>

<TYPE>烤烟型</TYPE>

<TLEN>84.0</TLEN>

<PACKAGE_>全硬</PACKAGE_>

<CLASS>一类</CLASS>

<MPLATE>ddd</MPLATE>

<IS_FAMOUS>1</IS_FAMOUS>

<INITIAL_QUANTITY>7.0000</INITIAL_QUANTITY>

<OTHER_INITIAL_QUANTITY>7.0000</OTHER_INITIAL_QUANTITY>

</c_xyordpr>

</NewDataSet>

</string>

My xsl

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:asx="http://www.sap.com/abapxml" version="1.0">

<xsl:template match="NewDataSet">

<asx:abap version="1.0">

<asx:values>

<HEAD>

<xsl:for-each select="c_xyorder">

<ZHEAD>

<LIST_ID>

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

</LIST_ID>

<ORDER_ID>

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

</ORDER_ID>

<SMEM_ID>

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

</SMEM_ID>

<SNAME>

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

</SNAME>

<BMEM_ID>

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

</BMEM_ID>

<BNAME>

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

</BNAME>

<ORDER_DATE>

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

</ORDER_DATE>

<DELI_DATE>

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

</DELI_DATE>

<DELI_DATE_S>

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

</DELI_DATE_S>

<DELI_DATE_E>

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

</DELI_DATE_E>

<SBEHALF>

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

</SBEHALF>

<BBEHALF>

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

</BBEHALF>

<MBEHALF>

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

</MBEHALF>

<TCOMMENT>

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

</TCOMMENT>

<KIND>

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

</KIND>

<PKIND>

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

</PKIND>

<HASRIGHT>

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

</HASRIGHT>

<CHARG_DATE>

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

</CHARG_DATE>

<QTOTAL>

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

</QTOTAL>

<SNODE>

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

</SNODE>

<BNODE>

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

</BNODE>

<SUBKIND>

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

</SUBKIND>

</ZHEAD>

</xsl:for-each>

</HEAD>

<ITEM>

<xsl:for-each select="c_xyordpr">

<ZITEM>

<LIST_ID>

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

</LIST_ID>

<ORDER_ID>

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

</ORDER_ID>

<ID>

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

</ID>

<PRODUCT_ID>

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

</PRODUCT_ID>

<QUANTITY>

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

</QUANTITY>

</ZITEM>

</xsl:for-each>

</ITEM>

</asx:values>

</asx:abap>

</xsl:template>

</xsl:transform>

Hi,

How can i convert XML to abap internal table using XSL.

My xsl can't convert XML to internal table using XML1, but can convert using XML2

I wan't convert xml1 to abap using my XSL, how to change my xsl

My xml1

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

<string xmlns="http://localhost/CigaTransService/">

<NewDataSet>

<Status Result="ok"/>

<c_xyorder>

<LIST_ID>12713598</LIST_ID>

<ORDER_ID>100755086</ORDER_ID>

<SMEM_ID>12320101</SMEM_ID>

<SNAME>工业公司</SNAME>

<BMEM_ID>11350201</BMEM_ID>

<BNAME>福建省烟草公司厦门市公司</BNAME>

<ORDER_DATE>2007-12-06T14:56:51.0000000+08:00</ORDER_DATE>

<DELI_DATE>2007年下半年</DELI_DATE>

<DELI_DATE_S>2007-07-01T00:00:00.0000000+08:00</DELI_DATE_S>

<DELI_DATE_E>2007-12-31T00:00:00.0000000+08:00</DELI_DATE_E>

<SBEHALF>钱</SBEHALF>

<BBEHALF>李</BBEHALF>

<MBEHALF>张</MBEHALF>

<TCOMMENT/>

<KIND>工商</KIND>

<PKIND>省际</PKIND>

<HASRIGHT>1</HASRIGHT>

<CHARG_DATE>2007-12-06T15:20:59.0000000+08:00</CHARG_DATE>

<QTOTAL>25.0000</QTOTAL>

<SNODE>江苏省</SNODE>

<BNODE>福建省</BNODE>

<SUBKIND>购销</SUBKIND>

</c_xyorder>

<c_xyordpr>

<LIST_ID>12869085</LIST_ID>

<ORDER_ID>100767307</ORDER_ID>

<ID>2</ID>

<PRODUCT_ID>69010281120242032000100</PRODUCT_ID>

<QUANTITY>775.0000</QUANTITY>

<PRICE>5000.0000</PRICE>

<PLATE>(精品)</PLATE>

<SUPPLIER_ID>20320001</SUPPLIER_ID>

<SUPPLIER>中烟工业公司</SUPPLIER>

<REGION>江苏省</REGION>

<TYPE>烤烟型</TYPE>

<TLEN>84.0</TLEN>

<PACKAGE_>全硬</PACKAGE_>

<CLASS>一类</CLASS>

<MPLATE>ddd</MPLATE>

<IS_FAMOUS>1</IS_FAMOUS>

<INITIAL_QUANTITY>7.0000</INITIAL_QUANTITY>

<OTHER_INITIAL_QUANTITY>7.0000</OTHER_INITIAL_QUANTITY>

</c_xyordpr>

</NewDataSet>

</string>

My xml2

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

<string>

<NewDataSet>

<Status Result="ok"/>

<c_xyorder>

<LIST_ID>12713598</LIST_ID>

<ORDER_ID>100755086</ORDER_ID>

<SMEM_ID>12320101</SMEM_ID>

<SNAME>工业公司</SNAME>

<BMEM_ID>11350201</BMEM_ID>

<BNAME>福建省烟草公司厦门市公司</BNAME>

<ORDER_DATE>2007-12-06T14:56:51.0000000+08:00</ORDER_DATE>

<DELI_DATE>2007年下半年</DELI_DATE>

<DELI_DATE_S>2007-07-01T00:00:00.0000000+08:00</DELI_DATE_S>

<DELI_DATE_E>2007-12-31T00:00:00.0000000+08:00</DELI_DATE_E>

<SBEHALF>钱</SBEHALF>

<BBEHALF>李</BBEHALF>

<MBEHALF>张</MBEHALF>

<TCOMMENT/>

<KIND>工商</KIND>

<PKIND>省际</PKIND>

<HASRIGHT>1</HASRIGHT>

<CHARG_DATE>2007-12-06T15:20:59.0000000+08:00</CHARG_DATE>

<QTOTAL>25.0000</QTOTAL>

<SNODE>江苏省</SNODE>

<BNODE>福建省</BNODE>

<SUBKIND>购销</SUBKIND>

</c_xyorder>

<c_xyordpr>

<LIST_ID>12869085</LIST_ID>

<ORDER_ID>100767307</ORDER_ID>

<ID>2</ID>

<PRODUCT_ID>69010281120242032000100</PRODUCT_ID>

<QUANTITY>775.0000</QUANTITY>

<PRICE>5000.0000</PRICE>

<PLATE>(精品)</PLATE>

<SUPPLIER_ID>20320001</SUPPLIER_ID>

<SUPPLIER>中烟工业公司</SUPPLIER>

<REGION>江苏省</REGION>

<TYPE>烤烟型</TYPE>

<TLEN>84.0</TLEN>

<PACKAGE_>全硬</PACKAGE_>

<CLASS>一类</CLASS>

<MPLATE>ddd</MPLATE>

<IS_FAMOUS>1</IS_FAMOUS>

<INITIAL_QUANTITY>7.0000</INITIAL_QUANTITY>

<OTHER_INITIAL_QUANTITY>7.0000</OTHER_INITIAL_QUANTITY>

</c_xyordpr>

</NewDataSet>

</string>

My xsl

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:asx="http://www.sap.com/abapxml" version="1.0">

<xsl:template match="NewDataSet">

<asx:abap version="1.0">

<asx:values>

<HEAD>

<xsl:for-each select="c_xyorder">

<ZHEAD>

<LIST_ID>

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

</LIST_ID>

<ORDER_ID>

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

</ORDER_ID>

<SMEM_ID>

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

</SMEM_ID>

<SNAME>

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

</SNAME>

<BMEM_ID>

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

</BMEM_ID>

<BNAME>

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

</BNAME>

<ORDER_DATE>

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

</ORDER_DATE>

<DELI_DATE>

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

</DELI_DATE>

<DELI_DATE_S>

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

</DELI_DATE_S>

<DELI_DATE_E>

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

</DELI_DATE_E>

<SBEHALF>

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

</SBEHALF>

<BBEHALF>

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

</BBEHALF>

<MBEHALF>

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

</MBEHALF>

<TCOMMENT>

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

</TCOMMENT>

<KIND>

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

</KIND>

<PKIND>

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

</PKIND>

<HASRIGHT>

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

</HASRIGHT>

<CHARG_DATE>

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

</CHARG_DATE>

<QTOTAL>

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

</QTOTAL>

<SNODE>

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

</SNODE>

<BNODE>

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

</BNODE>

<SUBKIND>

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

</SUBKIND>

</ZHEAD>

</xsl:for-each>

</HEAD>

<ITEM>

<xsl:for-each select="c_xyordpr">

<ZITEM>

<LIST_ID>

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

</LIST_ID>

<ORDER_ID>

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

</ORDER_ID>

<ID>

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

</ID>

<PRODUCT_ID>

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

</PRODUCT_ID>

<QUANTITY>

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

</QUANTITY>

</ZITEM>

</xsl:for-each>

</ITEM>

</asx:values>

</asx:abap>

</xsl:template>

</xsl:transform>

2 REPLIES 2
Read only

athavanraja
Active Contributor
0 Likes
460

thats because of the namespace in <string tag

xmlns="http://localhost/CigaTransService/">

either remove the xmlns="http://localhost/CigaTransService/">

from string tag in xml1 or add this namespace in the xsl.

Raja

Read only

0 Likes
460

hi raja

i have a similar problem.

how can the xmlns be added to the stylesheet?

if i add the namespace it always influences also the rest of the stylesheet (like in this example the <HEAD> tag...