HI,exports ,When I use the xslt transaction to export internal table to XML file,some unexpected result
apprears.
In the abap program i define the internal table as this:
DATA: BEGIN OF WA_FINAL_XML,
COMP_CODE TYPE STRING,
AC_DOC_TYP TYPE STRING,
GJAHR TYPE STRING ,
MONAT TYPE STRING,
AC_DOC_NO TYPE STRING,
PSTNG_DATE TYPE STRING,
UNAME TYPE STRING,
XMLSTRUCT TYPE TABLE OF TY_XML,
END OF WA_FINAL_XML.
TYPES: BEGIN OF TY_XML,
ITEM_NUM TYPE STRING,
GL_ACCOUNT TYPE STRING,
POSTXT TYPE STRING,
COSTCENTER TYPE STRING,
FUNC_AREA TYPE STRING,
PROFIT_CTR TYPE STRING,
COORDER TYPE STRING,
WBS_ELEMT TYPE STRING,
DEBIT_LC TYPE STRING,
CREDIT_LC TYPE STRING,
LOC_CURRCY TYPE STRING,
DEBIT_DC TYPE STRING,
CREDIT_DC TYPE STRING,
DOC_CURRCY TYPE STRING,
END OF TY_XML.
the main transaction code are as follows:
DATA: WA_XML LIKE TY_XML,
WA_SOURCE TYPE ABAP_TRANS_SRCBIND.
WA_SOURCE-NAME = 'D2CXML'.
GET REFERENCE OF T_FINAL_XML INTO WA_SOURCE-VALUE.
APPEND WA_SOURCE TO T_SOURCE.
CLEAR G_XML_STRING.
CALL TRANSFORMATION ('ZFIGL4')
SOURCE (T_SOURCE)
RESULT XML G_XML_STRING.
IF SY-SUBRC <> 0.
*
ELSE.
G_XML_STRING1 = G_XML_STRING.
REPLACE 'utf-16' WITH 'utf-8' INTO G_XML_STRING.
ENDIF.
IN the xslt transaction :
http://www.w3.org/1999/XSL/Transform" version="1.0">
<!
xsl:output encoding="utf-8" indent="yes"/
>
<xsl:template match="D2CXML">
<voucher_id>
<xsl:apply-templates/>
</voucher_id>
</xsl:template>
<xsl:template match="item">
<voucher_head>
<xsl:attribute name="no">
<xsl:value-of select="AC_DOC_NO"/>
</xsl:attribute>
<company>
<xsl:apply-templates select="COMP_CODE"/>
</company>
<voucher_type>
<xsl:apply-templates select="AC_DOC_TYP"/>
</voucher_type>
<fiscal_year>
<xsl:apply-templates select="GJAHR"/>
</fiscal_year>
<accounting_period>
<xsl:apply-templates select="MONAT"/>
</accounting_period>
<voucher_id>
<xsl:apply-templates select="AC_DOC_NO"/>
</voucher_id>
<prepareddate>
<xsl:apply-templates select="PSTNG_DATE"/>
</prepareddate>
<xsl:apply-templates select="X-MLSTRUCT"/>
</voucher_head>
</xsl:template>
<xsl:template match="X-MLSTRUCT">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="item/X-MLSTRUCT">
<entry>
<entry_id>
<xsl:apply-templates select="ITEM_NUM"/>
</entry_id>
<account_code>
<xsl:apply-templates select="GL_ACCOUNT"/>
</account_code>
<abstract>
<xsl:apply-templates select="POSTXT"/>
</abstract>
<primary_debit_amount>
<xsl:apply-templates select="DEBIT_DC"/>
</primary_debit_amount>
<natural_debit_currency>
<xsl:apply-templates select="DEBIT_DC"/>
</natural_debit_currency>
<primary_credit_amount>
<xsl:apply-templates select="CREDIT_LC"/>
</primary_credit_amount>
</entry>
</xsl:template>
</xsl:transform>
But the final data shows in the exported XML file shows :
<?xml version="1.0" encoding="utf-8" ?>
<voucher_id />
I don't know where the error lies . Thanks for your help in advance.
Edited by: leen_202 on Jun 8, 2009 2:29 PM
Edited by: leen_202 on Jun 8, 2009 2:34 PM