2008 May 24 7:22 AM
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>
2008 May 24 8:22 AM
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
2012 Apr 19 2:35 PM
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...
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |