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

Create a new Node in existing xml file using CL_IXML

Former Member
0 Likes
2,010

Friends i have to create a new node on existing file of xml. using CL_IXML class methods Append child .

Friends i have to create a new node on existing file of xml. using CL_IXML class methods Append child .

1 REPLY 1
Read only

Former Member
0 Likes
1,021

Hi,

searching information of XML I find your post.

Post my code source that I have (at the moment) but if you think something that changed , tell me please.

TYPE-POOLS: ixml.
*************************************************************
* macros
*
DEFINE write_xml.
  write: / 'XML:', &1 color col_positive inverse.
END-OF-DEFINITION.
************************************************************
  TYPES: BEGIN OF xml_line,
          data(256) TYPE x,
         END OF xml_line.


data: nom_archivo(50) TYPE c,
g_arch_enviar(128) TYPE c.
CONSTANTS: ENCODING(5) VALUE 'UTF-8'.

  DATA: l_ixml            TYPE REF TO if_ixml,
        l_streamfactory   TYPE REF TO if_ixml_stream_factory,
        l_parser type ref to if_ixml_parser,"""
        l_istream type ref to if_ixml_istream,"""
        l_ostream         TYPE REF TO if_ixml_ostream,
        l_renderer        TYPE REF TO if_ixml_renderer,
        l_document        TYPE REF TO if_ixml_document,
        l_node type ref to if_ixml_node,"""
        l_encoding type ref to if_ixml_encoding."""

  DATA: l_value                        TYPE string,"""""""""añado data
        l_var_xmldata type string,"""
        l_var_xmldata2 type string,"""
        l_var_xmldata3 type string,"""
        l_var_xmldata4 type string,"""

        l_var_cstr type xstring,"""
        l_var_ret type i,"""
        l_var_dsn type string."""

  DATA: l_xml_table       TYPE TABLE OF xml_line,
        l_xml_size        TYPE i,
        l_rc              TYPE i.
*l_var_xmldata = '<?xml version="1.0" encoding="utf-8"?><C dr="ñ" "></C>'.
l_var_xmldata2 = '<?xml version="1.0" encoding="utf-8"?>'.
l_var_xmldata3 = '<elementFormDefault="qualified"'.
l_var_xmldata4 = 'attributeFormDefault="unqualified""></C>'.

*CONCATENATE l_var_xmldata2 '<elementFormDefault="qualified" "></C>' INTO l_var_xmldata.

CONCATENATE l_var_xmldata2 l_var_xmldata3 l_var_xmldata4 INTO l_var_xmldata.

nom_archivo = 'utf8.xml'.
* Text-001 Ruta de unix a donde enviara el Archivo.
CONCATENATE '/tmp/' nom_archivo INTO g_arch_enviar.

CLASS cl_ixml DEFINITION LOAD.

  TYPES: c_line(50)    TYPE c.
DATA:         xmltab        TYPE STANDARD TABLE OF c_line,
         node      TYPE REF TO if_ixml_node,
         xml_line       TYPE c_line,

         charset       TYPE string,
         success       TYPE c.

DATA: BEGIN OF elemento1 occurs 0,
   name(30) VALUE 'Header',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento1.
DATA: BEGIN OF elemento2 occurs 0,
   name(30) VALUE 'MasterFiles',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2.
DATA: BEGIN OF elemento3 occurs 0,
   name(30) VALUE 'GeneralLedgerEntries',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3.
DATA: BEGIN OF elemento4 occurs 0,
   name(30) VALUE 'SourceDocuments',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4.

DATA: BEGIN OF elemento1A occurs 0,
   name(30) VALUE 'AuditFileVersion',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento1A.
DATA: BEGIN OF elemento1B occurs 0,
   name(30) VALUE 'CompanyID',
   elemento1B1(30) VALUE 'ele1B1'.
DATA END OF elemento1B.
DATA: BEGIN OF elemento1C occurs 0,
   name(30) VALUE 'TaxRegistrationNumber',
   elemento1C1(30) VALUE 'ele1C1'.
DATA END OF elemento1C.
DATA: BEGIN OF elemento1D occurs 0,
   name(30) VALUE 'TaxAccountingBasis',
   elemento1D1(30) VALUE 'ele1D1'.
DATA END OF elemento1D.
DATA: BEGIN OF elemento1E occurs 0,
   name(30) VALUE 'CompanyName',
   elemento1E1(30) VALUE 'ele1E1'.
DATA END OF elemento1E.
DATA: BEGIN OF elemento1F occurs 0,
   name(30) VALUE 'CompanyAddress',
   elemento1F1(30) VALUE 'ele1F1'.
DATA END OF elemento1F.
DATA: BEGIN OF elemento1G occurs 0,
   name(30) VALUE 'FiscalYear',
   elemento1G1(30) VALUE 'ele1G1'.
DATA END OF elemento1G.
DATA: BEGIN OF elemento1H occurs 0,
   name(30) VALUE 'StartDate',
   elemento1H1(30) VALUE 'ele1H1'.
DATA END OF elemento1H.
DATA: BEGIN OF elemento1I occurs 0,
   name(30) VALUE 'EndDate',
   elemento1I1(30) VALUE 'ele1I1'.
DATA END OF elemento1I.
DATA: BEGIN OF elemento1J occurs 0,
   name(30) VALUE 'CurrencyCode',
   elemento1J1(30) VALUE 'ele1J1'.
DATA END OF elemento1J.
DATA: BEGIN OF elemento1K occurs 0,
   name(30) VALUE 'DateCreated',
   elemento1K1(30) VALUE 'ele1K1'.
DATA END OF elemento1K.
DATA: BEGIN OF elemento1L occurs 0,
   name(30) VALUE 'ProductID',
   elemento1L1(30) VALUE 'ele1L1'.
DATA END OF elemento1L.
DATA: BEGIN OF elemento1M occurs 0,
   name(30) VALUE 'ProductVersion',
   elemento1M1(30) VALUE 'ele1M1'.
DATA END OF elemento1M.
DATA: BEGIN OF elemento1N occurs 0,
   name(30) VALUE 'Telephone',
   elemento1N1(30) VALUE 'ele1N1'.
DATA END OF elemento1N.
DATA: BEGIN OF elemento1O occurs 0,
   name(30) VALUE 'Fax',
   elemento1O1(30) VALUE 'ele1O1'.
DATA END OF elemento1O.
DATA: BEGIN OF elemento1P occurs 0,
   name(30) VALUE 'Email',
   elemento1P1(30) VALUE 'ele1P1'.
DATA END OF elemento1P.
DATA: BEGIN OF elemento1Q occurs 0,
   name(30) VALUE 'WebSite',
   elemento1Q1(30) VALUE 'ele1Q1'.
DATA END OF elemento1Q.
DATA: BEGIN OF elemento1R occurs 0,
   name(30) VALUE 'HeaderComment',
   elemento1R1(30) VALUE 'ele1R1'.
DATA END OF elemento1R.

DATA: BEGIN OF elemento2A occurs 0,
   name(30) VALUE 'GeneralLedger',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2A.
DATA: BEGIN OF elemento2B occurs 0,
   name(30) VALUE 'Customer',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B.
DATA: BEGIN OF elemento2C occurs 0,
   name(30) VALUE 'Supplier',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C.
DATA: BEGIN OF elemento2D occurs 0,
   name(30) VALUE 'Product',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D.
DATA: BEGIN OF elemento2E occurs 0,
   name(30) VALUE 'TaxTable',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E.

DATA: BEGIN OF elemento2A1 occurs 0,
   name(30) VALUE 'AccountID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2A1.
DATA: BEGIN OF elemento2A2 occurs 0,
   name(30) VALUE 'AccountDescription',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2A2.

DATA: BEGIN OF elemento2B1 occurs 0,
   name(30) VALUE 'CustomerID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B1.
DATA: BEGIN OF elemento2B2 occurs 0,
   name(30) VALUE 'CustomerTaxID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B2.
DATA BEGIN OF elemento2B3 occurs 0.
INCLUDE STRUCTURE elemento1E.
*   name(30) VALUE 'CompanyName',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B3.
DATA: BEGIN OF elemento2B4 occurs 0,
   name(30) VALUE 'Contact',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B4.
DATA: BEGIN OF elemento2B5 occurs 0,
   name(30) VALUE 'BillingAddress',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B5.
DATA: BEGIN OF elemento2B6 occurs 0,
   name(30) VALUE 'ShipToAddress',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B6.
DATA: BEGIN OF elemento2B7 occurs 0.
INCLUDE STRUCTURE elemento1N.
*   name(30) VALUE 'Telephone',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B7.
DATA: BEGIN OF elemento2B8 occurs 0.
INCLUDE STRUCTURE elemento1O.
*   name(30) VALUE 'Fax',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B8.
DATA: BEGIN OF elemento2B9 occurs 0.
INCLUDE STRUCTURE elemento1P.
*   name(30) VALUE 'Email',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B9.
DATA: BEGIN OF elemento2B10 occurs 0.
INCLUDE STRUCTURE elemento1Q.
*   name(30) VALUE 'Website',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2B10.

DATA: BEGIN OF elemento2C1 occurs 0,
   name(30) VALUE 'SupplierID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C1.
DATA: BEGIN OF elemento2C2 occurs 0,
   name(30) VALUE 'SupplierTaxID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C2.
DATA: BEGIN OF elemento2C3 occurs 0.
INCLUDE STRUCTURE elemento1E.
*   name(30) VALUE 'CompanyName',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C3.
DATA: BEGIN OF elemento2C4 occurs 0.
INCLUDE STRUCTURE elemento2B4.
*   name(30) VALUE 'Contact',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C4.
DATA: BEGIN OF elemento2C5 occurs 0.
INCLUDE STRUCTURE elemento2B5.
*   name(30) VALUE 'BillingAddress',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C5.
DATA: BEGIN OF elemento2C6 occurs 0.
INCLUDE STRUCTURE elemento2B6.
*   name(30) VALUE 'ShipToAddress',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C6.
DATA: BEGIN OF elemento2C7 occurs 0.
INCLUDE STRUCTURE elemento1N.
*   name(30) VALUE 'Telephone',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C7.
DATA: BEGIN OF elemento2C8 occurs 0.
INCLUDE STRUCTURE elemento1O.
*   name(30) VALUE 'Fax',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C8.
DATA: BEGIN OF elemento2C9 occurs 0.
INCLUDE STRUCTURE elemento1P.
*   name(30) VALUE 'Email',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C9.
DATA: BEGIN OF elemento2C10 occurs 0.
INCLUDE STRUCTURE elemento1Q.
*   name(30) VALUE 'Website',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2C10.

DATA: BEGIN OF elemento2D1 occurs 0,
   name(30) VALUE 'ProductType',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D1.
DATA: BEGIN OF elemento2D2 occurs 0,
   name(30) VALUE 'ProductCode',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D2.
DATA: BEGIN OF elemento2D3 occurs 0,
   name(30) VALUE 'ProductGroup',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D3.
DATA: BEGIN OF elemento2D4 occurs 0,
   name(30) VALUE 'ProductDescription',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D4.
DATA: BEGIN OF elemento2D5 occurs 0,
   name(30) VALUE 'ProductNumberCode',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2D5.

DATA: BEGIN OF elemento2E1 occurs 0,
   name(30) VALUE 'TaxType',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1.

DATA: BEGIN OF elemento2E1A occurs 0,
   name(30) VALUE 'Description',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1A.
DATA: BEGIN OF elemento2E1B occurs 0,
   name(30) VALUE 'TaxCodeDetails',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1B.

DATA: BEGIN OF elemento2E1B1 occurs 0,
   name(30) VALUE 'TaxCode',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1B1.
DATA: BEGIN OF elemento2E1B2 occurs 0.
INCLUDE STRUCTURE elemento2E1A.
*   name(30) VALUE 'Description',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1B2.
DATA: BEGIN OF elemento2E1B3 occurs 0,
   name(30) VALUE 'TaxPercentage',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento2E1B3.

DATA: BEGIN OF elemento3A occurs 0,
   name(30) VALUE 'NumberOfEntries',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3A.
DATA: BEGIN OF elemento3B occurs 0,
   name(30) VALUE 'TotalDebit',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3B.
DATA: BEGIN OF elemento3C occurs 0,
   name(30) VALUE 'TotalCredit',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3C.
DATA: BEGIN OF elemento3D occurs 0,
   name(30) VALUE 'Journal',
   minOccurs(30) VALUE '0',
   maxOccurs(30) VALUE 'unbounded',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D.

DATA: BEGIN OF elemento3D1 occurs 0,
   name(30) VALUE 'JournalID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D1.
DATA: BEGIN OF elemento3D2 occurs 0.
INCLUDE STRUCTURE elemento2E1A.
*   name(30) VALUE 'Description',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D2.
DATA: BEGIN OF elemento3D3 occurs 0,
   name(30) VALUE 'Transaction',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3.

DATA: BEGIN OF elemento3D3A occurs 0,
   name(30) VALUE 'TransactionID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3A.
DATA: BEGIN OF elemento3D3B occurs 0,
   name(30) VALUE 'Period',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3B.
DATA: BEGIN OF elemento3D3C occurs 0,
   name(30) VALUE 'TransactionDate',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3C.
DATA: BEGIN OF elemento3D3D occurs 0,
   name(30) VALUE 'SourceID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3D.
DATA: BEGIN OF elemento3D3E occurs 0.
INCLUDE STRUCTURE elemento2E1A.
*   name(30) VALUE 'Description',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3E.
DATA: BEGIN OF elemento3D3F occurs 0,
*INCLUDE STRUCTURE elemento2B1.
   name(30) VALUE 'GLPostingDate',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3F.
DATA: BEGIN OF elemento3D3G occurs 0.
INCLUDE STRUCTURE elemento2B1.
*   name(30) VALUE 'CustomerID',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3G.
DATA: BEGIN OF elemento3D3H occurs 0,
   name(30) VALUE 'SupplierID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3H.
DATA: BEGIN OF elemento3D3I occurs 0,
   name(30) VALUE 'Line',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I.

DATA: BEGIN OF elemento3D3I1 occurs 0,
   name(30) VALUE 'RecordID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I1.
DATA: BEGIN OF elemento3D3I2 occurs 0.
INCLUDE STRUCTURE elemento2A1.
*   name(30) VALUE 'AccountID',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I2.
DATA: BEGIN OF elemento3D3I3 occurs 0,
   name(30) VALUE 'SourceDocumentID',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I3.
DATA: BEGIN OF elemento3D3I4 occurs 0,
   name(30) VALUE 'SystemEntryDate',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I4.
DATA: BEGIN OF elemento3D3I5 occurs 0.
INCLUDE STRUCTURE elemento2E1A.
*   name(30) VALUE 'Description',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I5.
DATA: BEGIN OF elemento3D3I5A occurs 0,
   name(30) VALUE 'DebitAmount',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I5A.
DATA: BEGIN OF elemento3D3I5B occurs 0,
   name(30) VALUE 'CreditAmount',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento3D3I5B.
****************************************************************
DATA: BEGIN OF elemento4A occurs 0,
   name(30) VALUE 'SalesInvoices',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A.

DATA: BEGIN OF elemento4A1 occurs 0.
INCLUDE STRUCTURE elemento3A.
*   name(30) VALUE 'NumberOfEntries',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A1.
DATA: BEGIN OF elemento4A2 occurs 0.
INCLUDE STRUCTURE elemento3B.
*   name(30) VALUE 'TotalDebit',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A2.
DATA: BEGIN OF elemento4A3 occurs 0.
INCLUDE STRUCTURE elemento3C.
*   name(30) VALUE 'TotalCredit',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A3.
DATA: BEGIN OF elemento4A4 occurs 0,
   name(30) VALUE 'Invoice',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4.

DATA: BEGIN OF elemento4A4A occurs 0,
   name(30) VALUE 'InvoiceNo',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4A.
DATA: BEGIN OF elemento4A4B occurs 0.
INCLUDE STRUCTURE elemento3D3B.
*   name(30) VALUE 'Period',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4B.
DATA: BEGIN OF elemento4A4C occurs 0,
   name(30) VALUE 'InvoiceDate',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4C.
DATA: BEGIN OF elemento4A4D occurs 0,
   name(30) VALUE 'InvoiceType',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4D.
DATA: BEGIN OF elemento4A4E occurs 0.
INCLUDE STRUCTURE elemento3D3I4.
*   name(30) VALUE 'SystemEntryDate',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4E.
DATA: BEGIN OF elemento4A4F occurs 0.
INCLUDE STRUCTURE elemento3D3A.
*   name(30) VALUE 'TransactionID',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4F.
DATA: BEGIN OF elemento4A4G occurs 0.
INCLUDE STRUCTURE elemento2B1.
*   name(30) VALUE 'CustomerID',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4G.
DATA: BEGIN OF elemento4A4H occurs 0,
   name(30) VALUE 'ShipTo',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4H.
DATA: BEGIN OF elemento4A4I occurs 0,
   name(30) VALUE 'ShipFrom',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4I.
DATA: BEGIN OF elemento4A4J occurs 0.
INCLUDE STRUCTURE elemento3D3I.
*   name(30) VALUE 'Line',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J.
DATA: BEGIN OF elemento4A4K occurs 0,
   name(30) VALUE 'DocumentTotals',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K.

DATA: BEGIN OF elemento4A4J1 occurs 0,
   name(30) VALUE 'LineNumber',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J1.
DATA: BEGIN OF elemento4A4J2 occurs 0,
   name(30) VALUE 'OrderReferences',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J2.
DATA: BEGIN OF elemento4A4J3 occurs 0,
   name(30) VALUE 'ProductCoder',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J3.
DATA: BEGIN OF elemento4A4J4 occurs 0.
INCLUDE STRUCTURE elemento2D4.
*   name(30) VALUE 'ProductDescription',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J4.
DATA: BEGIN OF elemento4A4J5 occurs 0,
   name(30) VALUE 'Quantity',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J5.
DATA: BEGIN OF elemento4A4J6 occurs 0,
   name(30) VALUE 'UnitOfMeasure',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J6.
DATA: BEGIN OF elemento4A4J7 occurs 0,
   name(30) VALUE 'UnitPrice',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J7.
DATA: BEGIN OF elemento4A4J8 occurs 0,
   name(30) VALUE 'TaxPointDate',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J8.
DATA: BEGIN OF elemento4A4J9 occurs 0,
   name(30) VALUE 'References',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J9.
DATA: BEGIN OF elemento4A4J10 occurs 0.
INCLUDE STRUCTURE elemento2E1A.
*   name(30) VALUE 'Description',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J10.
DATA: BEGIN OF elemento4A4J11 occurs 0.
INCLUDE STRUCTURE elemento3D3I5A.
*   name(30) VALUE 'DebitAmount',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J11.
DATA: BEGIN OF elemento4A4J12 occurs 0.
INCLUDE STRUCTURE elemento3D3I5B.
*   name(30) VALUE 'CreditAmount',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J12.
DATA: BEGIN OF elemento4A4J13 occurs 0,
   name(30) VALUE 'Tax',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J13.
DATA: BEGIN OF elemento4A4J14 occurs 0,
   name(30) VALUE 'SettlementAmount',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J14.

DATA: BEGIN OF elemento4A4J2A occurs 0,
   name(30) VALUE 'OriginatingON',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J2A.
DATA: BEGIN OF elemento4A4J2B occurs 0,
   name(30) VALUE 'OrderDate',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J2B.

DATA: BEGIN OF elemento4A4J9A occurs 0,
   name(30) VALUE 'CreditNote',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J9A.

DATA: BEGIN OF elemento4A4J9A1 occurs 0,
   name(30) VALUE 'Reference',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J9A1.
DATA: BEGIN OF elemento4A4J9A2 occurs 0,
   name(30) VALUE 'Reason',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4J9A2.

DATA: BEGIN OF elemento4A4K1 occurs 0,
   name(30) VALUE 'TaxPayable',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K1.
DATA: BEGIN OF elemento4A4K2 occurs 0,
   name(30) VALUE 'NetTotal',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K2.
DATA: BEGIN OF elemento4A4K3 occurs 0,
   name(30) VALUE 'GrossTotal',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K3.
DATA: BEGIN OF elemento4A4K4 occurs 0,
   name(30) VALUE 'Currency',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K4.
DATA: BEGIN OF elemento4A4K5 occurs 0,
   name(30) VALUE 'Settlement',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K5.

DATA: BEGIN OF elemento4A4K4A occurs 0.
INCLUDE STRUCTURE elemento1J.
*   name(30) VALUE 'CurrencyCode',
*   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K4A.

DATA: BEGIN OF elemento4A4K4A1 occurs 0,
   name(30) VALUE 'CurrencyDebitAmount',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K4A1.
DATA: BEGIN OF elemento4A4K4A2 occurs 0,
   name(30) VALUE 'CurrencyCreditAmount',
   elemento1A1(30) VALUE 'ele1A1'.
DATA END OF elemento4A4K4A2.

START-OF-SELECTION.


*       Creating a ixml factory
        l_ixml = cl_ixml=>create( ).
* Create factory object for data streams
l_streamfactory = l_ixml->create_stream_factory( ).
* Create object for input stream
l_istream = l_streamfactory->create_istream_string( string =
l_var_xmldata ).
*       Creating the dom object model
        l_document = l_ixml->create_document( ).
* Create parser
l_parser = l_ixml->create_parser( document = l_document
stream_factory = l_streamfactory
istream = l_istream ).
* create dom tree by parsing
if l_parser->parse( ) <> 0.
data: j(2).
j = '9'.
* do exception handling here
* return.
endif.
*create output objetct
* create a output stream
  l_ostream = l_streamfactory->create_ostream_itable( table = xmltab ).

  charset = 'SAP*'.
  IF NOT charset IS INITIAL.
*   set an document encoding (optional)
    l_encoding = l_ixml->create_encoding( character_set = charset
                                      byte_order = 0 ).
    success  = l_ostream->set_encoding( encoding = l_encoding ).
  ENDIF.

l_renderer =
l_ixml->create_renderer( document = l_document
ostream = l_ostream ).


  IF l_renderer->render( ) <> 0.
    WRITE: / 'ERROR: document rendering'.
    EXIT.
  ENDIF.

call method l_ostream->close( ).

*Writing string to file

open dataset g_arch_enviar FOR OUTPUT in binary mode.
transfer l_var_cstr to g_arch_enviar.
close dataset g_arch_enviar.
*       Fill root node with value AuditFile
DATA: l_element_AuditFile TYPE REF TO if_ixml_element.
        l_element_AuditFile  = l_document->create_simple_element(
                    name = 'AuditFile'
                    parent = l_document ).
DATA: CONCA TYPE STRING.
DATA: elemento type string.

elemento = elemento1-name.
DATA: l_element_Header TYPE REF TO if_ixml_element.
        l_element_Header  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_AuditFile ).
elemento = elemento1A-name.
DATA: l_element_AuditFileVersion TYPE REF TO if_ixml_element.
        l_element_AuditFileVersion  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1B-name.
DATA: l_element_CompanyID TYPE REF TO if_ixml_element.
        l_element_CompanyID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
*The name "L_ELEMENT_TAXREGISTRATIONNUMBER" is longer than the allowed		
*30 characters.		
*
*elemento = elemento1C-name.
*DATA: l_element_TaxRegistrationNumber TYPE REF TO if_ixml_element.
*        l_element_TaxRegistrationNumber  = l_document->create_simple_element(
*                    name = elemento
*                    parent = l_element_Header ).
elemento = elemento1D-name.
DATA: l_element_TaxAccountingBasis TYPE REF TO if_ixml_element.
        l_element_TaxAccountingBasis  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1E-name.
DATA: l_element_CompanyName TYPE REF TO if_ixml_element.
        l_element_CompanyName  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1F-name.
DATA: l_element_CompanyAddress TYPE REF TO if_ixml_element.
        l_element_CompanyAddress  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1G-name.
DATA: l_element_FiscalYear TYPE REF TO if_ixml_element.
        l_element_FiscalYear  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1H-name.
DATA: l_element_StartDate TYPE REF TO if_ixml_element.
        l_element_StartDate  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1I-name.
DATA: l_element_EndDate TYPE REF TO if_ixml_element.
        l_element_EndDate  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1J-name.
DATA: l_element_CurrencyCode TYPE REF TO if_ixml_element.
        l_element_CurrencyCode  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1K-name.
DATA: l_element_DateCreated TYPE REF TO if_ixml_element.
        l_element_DateCreated  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1L-name.
DATA: l_element_ProductID TYPE REF TO if_ixml_element.
        l_element_ProductID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1M-name.
DATA: l_element_ProductVersion TYPE REF TO if_ixml_element.
        l_element_ProductVersion  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1N-name.
DATA: l_element_Telephone TYPE REF TO if_ixml_element.
        l_element_Telephone  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1O-name.
DATA: l_element_Fax TYPE REF TO if_ixml_element.
        l_element_Fax  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1P-name.
DATA: l_element_Email TYPE REF TO if_ixml_element.
        l_element_Email  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1Q-name.
DATA: l_element_WebSite TYPE REF TO if_ixml_element.
        l_element_WebSite  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).
elemento = elemento1R-name.
DATA: l_element_HeaderComment TYPE REF TO if_ixml_element.
        l_element_HeaderComment  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Header ).

elemento = elemento2-name.
DATA: l_element_MasterFiles TYPE REF TO if_ixml_element.
        l_element_MasterFiles  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_AuditFile ).
elemento = elemento2A-name.
DATA: l_element_GeneralLedger TYPE REF TO if_ixml_element.
        l_element_GeneralLedger  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_MasterFiles ).
elemento = elemento2B-name.
DATA: l_element_Customer TYPE REF TO if_ixml_element.
        l_element_Customer  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_MasterFiles ).
elemento = elemento2C-name.
DATA: l_element_Supplier TYPE REF TO if_ixml_element.
        l_element_Supplier  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_MasterFiles ).
elemento = elemento2D-name.
DATA: l_element_Product TYPE REF TO if_ixml_element.
        l_element_Product  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_MasterFiles ).
elemento = elemento2E-name.
DATA: l_element_TaxTable TYPE REF TO if_ixml_element.
        l_element_TaxTable  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_MasterFiles ).

elemento = elemento2A1-name.
DATA: l_element_AccountID TYPE REF TO if_ixml_element.
        l_element_AccountID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_GeneralLedger ).
elemento = elemento2A2-name.
DATA: l_element_AccountDescription TYPE REF TO if_ixml_element.
        l_element_AccountDescription  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_GeneralLedger ).

elemento = elemento2B1-name.
DATA: l_element_CustomerID TYPE REF TO if_ixml_element.
        l_element_CustomerID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).
elemento = elemento2B2-name.
DATA: l_element_CustomerTaxID TYPE REF TO if_ixml_element.
        l_element_CustomerTaxID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).
*elemento = elemento2B3-name.
elemento = elemento1E-name.
*DATA: l_element_CompanyName TYPE REF TO if_ixml_element.
        l_element_CompanyName  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).
elemento = elemento2B4-name.
DATA: l_element_Contact TYPE REF TO if_ixml_element.
        l_element_Contact  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).
elemento = elemento2B5-name.
DATA: l_element_BillingAddress TYPE REF TO if_ixml_element.
        l_element_BillingAddress  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).
elemento = elemento2B6-name.
DATA: l_element_ShipToAddress TYPE REF TO if_ixml_element.
        l_element_ShipToAddress  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).
*elemento = elemento2B7-name.
elemento = elemento1N-name.
*DATA: l_element_Telephone TYPE REF TO if_ixml_element.
        l_element_Telephone  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).
*elemento = elemento2B8-name.
elemento = elemento1O-name.
*DATA: l_element_Fax TYPE REF TO if_ixml_element.
        l_element_Fax  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).
*elemento = elemento2B9-name.
elemento = elemento1P-name.
*DATA: l_element_Email TYPE REF TO if_ixml_element.
        l_element_Email  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).
*elemento = elemento2B10-name.
elemento = elemento1Q-name.
*DATA: l_element_Website TYPE REF TO if_ixml_element.
        l_element_Website  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Customer ).

elemento = elemento2C1-name.
DATA: l_element_SupplierID TYPE REF TO if_ixml_element.
        l_element_SupplierID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).
elemento = elemento2C2-name.
DATA: l_element_SupplierTaxID TYPE REF TO if_ixml_element.
        l_element_SupplierTaxID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).
elemento = elemento1E-name.
*DATA: l_element_CompanyName TYPE REF TO if_ixml_element.
        l_element_CompanyName  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).
elemento = elemento2B4-name.
*DATA: l_element_Contact TYPE REF TO if_ixml_element.
        l_element_Contact  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).
elemento = elemento2B5-name.
*DATA: l_element_BillingAddress TYPE REF TO if_ixml_element.
        l_element_BillingAddress  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).
elemento = elemento2B6-name.
*DATA: l_element_ShipToAddress TYPE REF TO if_ixml_element.
        l_element_ShipToAddress  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).
elemento = elemento1N-name.
*DATA: l_element_Telephone TYPE REF TO if_ixml_element.
        l_element_Telephone  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).
elemento = elemento1O-name.
*DATA: l_element_Fax TYPE REF TO if_ixml_element.
        l_element_Fax  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).
elemento = elemento1P-name.
*DATA: l_element_Email TYPE REF TO if_ixml_element.
        l_element_Email  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).
elemento = elemento1Q-name.
*DATA: l_element_Website TYPE REF TO if_ixml_element.
        l_element_Website  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Supplier ).

elemento = elemento2D1-name.
DATA: l_element_ProductType TYPE REF TO if_ixml_element.
        l_element_ProductType  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Product ).
elemento = elemento2D2-name.
DATA: l_element_ProductCode TYPE REF TO if_ixml_element.
        l_element_ProductCode  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Product ).
elemento = elemento2D3-name.
DATA: l_element_ProductGroup TYPE REF TO if_ixml_element.
        l_element_ProductGroup  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Product ).
elemento = elemento2D4-name.
DATA: l_element_ProductDescription TYPE REF TO if_ixml_element.
        l_element_ProductDescription  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Product ).
elemento = elemento2D5-name.
DATA: l_element_ProductNumberCode TYPE REF TO if_ixml_element.
        l_element_ProductNumberCode  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Product ).

elemento = elemento2E1-name.
DATA: l_element_TaxType TYPE REF TO if_ixml_element.
        l_element_TaxType  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_TaxTable ).
elemento = elemento2E1A-name.
DATA: l_element_Description TYPE REF TO if_ixml_element.
        l_element_Description  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_TaxType ).
elemento = elemento2E1B-name.
DATA: l_element_TaxCodeDetails TYPE REF TO if_ixml_element.
        l_element_TaxCodeDetails  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_TaxType ).
elemento = elemento2E1B1-name.
DATA: l_element_TaxCode TYPE REF TO if_ixml_element.
        l_element_TaxCode  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_TaxCodeDetails ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
        l_element_Description  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_TaxCodeDetails ).
elemento = elemento2E1B3-name.
DATA: l_element_TaxPercentage TYPE REF TO if_ixml_element.
        l_element_TaxPercentage  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_TaxCodeDetails ).

elemento = elemento3-name.
DATA: l_element_GeneralLedgerEntries TYPE REF TO if_ixml_element.
        l_element_GeneralLedgerEntries  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_AuditFile ).

elemento = elemento3A-name.
DATA: l_element_NumberOfEntries TYPE REF TO if_ixml_element.
        l_element_NumberOfEntries  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_GeneralLedgerEntries ).
elemento = elemento3B-name.
DATA: l_element_TotalDebit TYPE REF TO if_ixml_element.
        l_element_TotalDebit  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_GeneralLedgerEntries ).
elemento = elemento3C-name.
DATA: l_element_TotalCredit TYPE REF TO if_ixml_element.
        l_element_TotalCredit  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_GeneralLedgerEntries ).
elemento = elemento3D-name.
*****if elemento3D-minOccurs NE ''.
*****   elemento1 = ' minOccurs = '.
*****   elemento2 = elemento3D-minOccurs.
*****   CONCATENATE elemento elemento1 elemento2 INTO elemento.
*****endif.
*data: eleref(30),
*elemento.
*eleref = 'ref = '.
*CONCATENATE eleref elemento INTO elemento.

DATA: l_element_Journal TYPE REF TO if_ixml_element.
        l_element_Journal  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_GeneralLedgerEntries ).

elemento = elemento3D1-name.
DATA: l_element_JournalID TYPE REF TO if_ixml_element.
        l_element_JournalID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Journal ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
        l_element_Description  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Journal ).
elemento = elemento3D3-name.
DATA: l_element_Transaction TYPE REF TO if_ixml_element.
        l_element_Transaction  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Journal ).

elemento = elemento3D3A-name.
DATA: l_element_TransactionID TYPE REF TO if_ixml_element.
        l_element_TransactionID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Transaction ).
elemento = elemento3D3B-name.
DATA: l_element_Period TYPE REF TO if_ixml_element.
        l_element_Period  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Transaction ).
elemento = elemento3D3C-name.
DATA: l_element_TransactionDate TYPE REF TO if_ixml_element.
        l_element_TransactionDate  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Transaction ).
elemento = elemento3D3D-name.
DATA: l_element_SourceID TYPE REF TO if_ixml_element.
        l_element_SourceID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Transaction ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
        l_element_Description  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Transaction ).
elemento = elemento3D3F-name.
DATA: l_element_GLPostingDate TYPE REF TO if_ixml_element.
        l_element_GLPostingDate  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Transaction ).
elemento = elemento2B1-name.
*DATA: l_element_CustomerID TYPE REF TO if_ixml_element.
        l_element_CustomerID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Transaction ).
elemento = elemento2C1-name.
*DATA: l_element_SupplierID TYPE REF TO if_ixml_element.
        l_element_SupplierID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Transaction ).
elemento = elemento3D3I-name.
DATA: l_element_Line TYPE REF TO if_ixml_element.
        l_element_Line  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Transaction ).

elemento = elemento3D3I1-name.
DATA: l_element_RecordID TYPE REF TO if_ixml_element.
        l_element_RecordID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento2A1-name.
*DATA: l_element_AccountID TYPE REF TO if_ixml_element.
        l_element_AccountID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento3D3I3-name.
DATA: l_element_SourceDocumentID TYPE REF TO if_ixml_element.
        l_element_SourceDocumentID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento3D3I4-name.
DATA: l_element_SystemEntryDate TYPE REF TO if_ixml_element.
        l_element_SystemEntryDate  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
        l_element_Description  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento3D3I5A-name.
DATA: l_element_DebitAmount TYPE REF TO if_ixml_element.
        l_element_DebitAmount  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Description ).
elemento = elemento3D3I5B-name.
DATA: l_element_CreditAmount TYPE REF TO if_ixml_element.
        l_element_CreditAmount  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Description ).

elemento = elemento4-name.
DATA: l_element_SourceDocuments TYPE REF TO if_ixml_element.
        l_element_SourceDocuments  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_AuditFile ).

elemento = elemento4A-name.
DATA: l_element_SalesInvoices TYPE REF TO if_ixml_element.
        l_element_SalesInvoices  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_SourceDocuments ).

elemento = elemento3A-name.
*DATA: l_element_NumberOfEntries TYPE REF TO if_ixml_element.
        l_element_NumberOfEntries  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_SalesInvoices ).
elemento = elemento3B-name.
*DATA: l_element_TotalDebit TYPE REF TO if_ixml_element.
        l_element_TotalDebit  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_SalesInvoices ).
elemento = elemento3C-name.
*DATA: l_element_TotalCredit TYPE REF TO if_ixml_element.
        l_element_TotalCredit  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_SalesInvoices ).
elemento = elemento4A4-name.
DATA: l_element_Invoice TYPE REF TO if_ixml_element.
        l_element_Invoice  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_SalesInvoices ).

elemento = elemento4A4A-name.
DATA: l_element_InvoiceNo TYPE REF TO if_ixml_element.
        l_element_InvoiceNo  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento3D3B-name.
*DATA: l_element_Period TYPE REF TO if_ixml_element.
        l_element_Period  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento4A4C-name.
DATA: l_element_InvoiceDate TYPE REF TO if_ixml_element.
        l_element_InvoiceDate  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento4A4D-name.
DATA: l_element_InvoiceType TYPE REF TO if_ixml_element.
        l_element_InvoiceType  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento3D3I4-name.
*DATA: l_element_SystemEntryDate TYPE REF TO if_ixml_element.
        l_element_SystemEntryDate  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento3D3A-name.
*DATA: l_element_TransactionID TYPE REF TO if_ixml_element.
        l_element_TransactionID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento2B1-name.
*DATA: l_element_CustomerID TYPE REF TO if_ixml_element.
        l_element_CustomerID  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento4A4H-name.
DATA: l_element_ShipTo TYPE REF TO if_ixml_element.
        l_element_ShipTo  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento4A4I-name.
DATA: l_element_ShipFrom TYPE REF TO if_ixml_element.
        l_element_ShipFrom  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento3D3I-name.
*DATA: l_element_Line TYPE REF TO if_ixml_element.
        l_element_Line  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).
elemento = elemento4A4K-name.
DATA: l_element_DocumentTotals TYPE REF TO if_ixml_element.
        l_element_DocumentTotals  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Invoice ).

elemento = elemento4A4J1-name.
DATA: l_element_LineNumber TYPE REF TO if_ixml_element.
        l_element_LineNumber  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento4A4J2-name.
DATA: l_element_OrderReferences TYPE REF TO if_ixml_element.
        l_element_OrderReferences  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento4A4J3-name.
DATA: l_element_ProductCoder TYPE REF TO if_ixml_element.
        l_element_ProductCode  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento2D4-name.
*DATA: l_element_ProductDescription TYPE REF TO if_ixml_element.
        l_element_ProductDescription  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento4A4J5-name.
DATA: l_element_Quantity TYPE REF TO if_ixml_element.
        l_element_Quantity  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento4A4J6-name.
DATA: l_element_UnitOfMeasure TYPE REF TO if_ixml_element.
        l_element_UnitOfMeasure  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento4A4J7-name.
DATA: l_element_UnitPrice TYPE REF TO if_ixml_element.
        l_element_UnitPrice  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento4A4J8-name.
DATA: l_element_TaxPointDate TYPE REF TO if_ixml_element.
        l_element_TaxPointDate  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento4A4J9-name.
DATA: l_element_References TYPE REF TO if_ixml_element.
        l_element_References  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento2E1A-name.
*DATA: l_element_Description TYPE REF TO if_ixml_element.
        l_element_Description  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento3D3I5A-name.
*DATA: l_element_DebitAmount TYPE REF TO if_ixml_element.
        l_element_DebitAmount  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento3D3I5B-name.
*DATA: l_element_CreditAmount TYPE REF TO if_ixml_element.
        l_element_CreditAmount  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento4A4J13-name.
DATA: l_element_Tax TYPE REF TO if_ixml_element.
        l_element_Tax  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).
elemento = elemento4A4J14-name.
DATA: l_element_SettlementAmount TYPE REF TO if_ixml_element.
        l_element_SettlementAmount  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Line ).

elemento = elemento4A4J2A-name.
DATA: l_element_OriginatingON TYPE REF TO if_ixml_element.
        l_element_OriginatingON  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_OrderReferences ).
elemento = elemento4A4J2B-name.
DATA: l_element_OrderDate TYPE REF TO if_ixml_element.
        l_element_OrderDate  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_OrderReferences ).

elemento = elemento4A4J9A-name.
DATA: l_element_CreditNote TYPE REF TO if_ixml_element.
        l_element_CreditNote  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_References ).

elemento = elemento4A4J9A1-name.
DATA: l_element_Reference TYPE REF TO if_ixml_element.
        l_element_Reference  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_CreditNote ).
elemento = elemento4A4J9A2-name.
DATA: l_element_Reason TYPE REF TO if_ixml_element.
        l_element_Reason  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_CreditNote ).

elemento = elemento4A4K1-name.
DATA: l_element_TaxPayable TYPE REF TO if_ixml_element.
        l_element_TaxPayable  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_DocumentTotals ).
elemento = elemento4A4K2-name.
DATA: l_element_NetTotal TYPE REF TO if_ixml_element.
        l_element_NetTotal  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_DocumentTotals ).
elemento = elemento4A4K3-name.
DATA: l_element_GrossTotal TYPE REF TO if_ixml_element.
        l_element_GrossTotal  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_DocumentTotals ).
elemento = elemento4A4K4-name.
DATA: l_element_Currency TYPE REF TO if_ixml_element.
        l_element_Currency  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_DocumentTotals ).
elemento = elemento4A4K5-name.
DATA: l_element_Settlement TYPE REF TO if_ixml_element.
        l_element_Settlement  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_DocumentTotals ).

elemento = elemento1J-name.
*DATA: l_element_CurrencyCode TYPE REF TO if_ixml_element.
        l_element_CurrencyCode  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_Currency ).

elemento = elemento4A4K4A1-name.
DATA: l_element_CurrencyDebitAmount TYPE REF TO if_ixml_element.
        l_element_CurrencyDebitAmount  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_CurrencyCode ).
elemento = elemento4A4K4A2-name.
DATA: l_element_CurrencyCreditAmount TYPE REF TO if_ixml_element.
        l_element_CurrencyCreditAmount  = l_document->create_simple_element(
                    name = elemento
                    parent = l_element_CurrencyCode ).



*   Creating a stream factory
    l_streamfactory = l_ixml->create_stream_factory( ).
*   Connect internal XML table to stream factory
    l_ostream = l_streamfactory->create_ostream_itable( table = l_xml_table ).

*   Rendering the document
    l_renderer = l_ixml->create_renderer( ostream  = l_ostream
                                          document = l_document ).
    l_rc = l_renderer->render( ).

*   Saving the XML document
    l_xml_size = l_ostream->get_num_written_raw( ).

    CALL METHOD cl_gui_frontend_services=>gui_download
      EXPORTING
        bin_filesize = l_xml_size
*        filename     = 'E:	empAuditFile2.xml'                  "cambio E
        filename     = 'C:mioAuditFile21.xml'                  "cambio C
        filetype     = 'BIN'
      CHANGING
        data_tab     = l_xml_table
      EXCEPTIONS
        OTHERS       = 24.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
*inicio prueba
*Process the document
perform process_dom using l_document.

*WHEN

*fin prueba
*&--------------------------------------------------------------------
**& Form process_dom
*&--------------------------------------------------------------------
form process_dom using document type ref to if_ixml_document.

data: node type ref to if_ixml_node,
iterator type ref to if_ixml_node_iterator,
nodemap type ref to if_ixml_named_node_map,
attr type ref to if_ixml_node,
name type string,
prefix type string,
value type string,
indent type i,
count type i,
index type i.

data: name2 type string,
name_root type string,
node_parent type ref to if_ixml_node,
node_root type ref to if_ixml_node,
num_children type i.


node ?= document.

check not node is initial.

uline.
write: /.
write: /' DOM-TREE'.
write: /.
if node is initial. exit. endif.


*create a node iterator
iterator = node->create_iterator( ).

*get current node
node = iterator->get_next( ).


*loop over all nodes
while not node is initial.
indent = node->get_height( ) * 2.
indent = indent + 20.

num_children = node->num_children( ).
case node->get_type( ).
when if_ixml_node=>co_node_element.

*element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
node_root = node->get_root( ).
name_root = node_root->get_name( ).
write: / 'ELEMENT :'.
write: at indent name color col_positive inverse.
write: 'NUM_CHILDREN:', num_children.
write: 'ROOT:', name_root.
node_parent = node->get_parent( ).
name2 = node_parent->get_name( ).
write: 'NAME2: ' , name2.

if not nodemap is initial.

*attributes
count = nodemap->get_length( ).
do count times.
index = sy-index - 1.
attr = nodemap->get_item( index ).
name = attr->get_name( ).

prefix = attr->get_namespace_prefix( ).
value = attr->get_value( ).
write: / 'ATTRIBUTE:'.
write: at indent name color col_heading inverse, '=',
value color col_total inverse.
enddo.
endif.
when if_ixml_node=>co_node_text or
if_ixml_node=>co_node_cdata_section.

*text node
value = node->get_value( ).
write: / 'VALUE :'.


*mjprocha
node_parent = node->get_parent( ).
write: at indent value color col_group inverse.
name2 = node_parent->get_name( ).
write: 'NAME2: ' , name2.
endcase.

*advance to next node
node = iterator->get_next( ).
endwhile.
endform. "process_dom

*---------------------------------------------------------------------*
*       FORM print_tree                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM print_dom USING node TYPE REF TO if_ixml_node.
  DATA: iterator  TYPE REF TO if_ixml_node_iterator,
        nodemap   TYPE REF TO if_ixml_named_node_map,
        attr      TYPE REF TO if_ixml_node,
        name      TYPE string,
        prefix    TYPE string,
        value     TYPE string,
        indent    TYPE i,
        count     TYPE i,
        index     TYPE i.

  CHECK NOT node IS INITIAL.

  ULINE.
  WRITE: /.
  WRITE: /' DOM-TREE'.
  WRITE: /.
  IF node IS INITIAL. EXIT. ENDIF.
* create a node iterator
  iterator  = node->create_iterator( ).
* get current node
  node = iterator->get_next( ).

* loop over all nodes
  WHILE NOT node IS INITIAL.
    indent = node->get_height( ) * 2.
    indent = indent + 20.

    CASE node->get_type( ).
      WHEN if_ixml_node=>co_node_element.
*       element node
        name    = node->get_name( ).
        nodemap = node->get_attributes( ).
        WRITE: / 'ELEMENT  :'.
        WRITE: AT indent name COLOR COL_POSITIVE INVERSE.
        IF NOT nodemap IS INITIAL.
*         attributes
          count = nodemap->get_length( ).
          DO count TIMES.
            index  = sy-index - 1.
            attr   = nodemap->get_item( index ).
            name   = attr->get_name( ).
            prefix = attr->get_namespace( ).
            value  = attr->get_value( ).
            WRITE: / 'ATTRIBUTE:'.
            WRITE: AT indent name  COLOR COL_HEADING INVERSE, '=',
                             value COLOR COL_TOTAL   INVERSE.
          ENDDO.
        ENDIF.
      WHEN if_ixml_node=>co_node_text.
*       text node
        value  = node->get_value( ).
        WRITE: / 'TEXT     :'.
        WRITE: AT indent value COLOR COL_GROUP INVERSE.
    ENDCASE.
*   advance to next node
    node = iterator->get_next( ).
  ENDWHILE.
ENDFORM.                    "traverse_dom

I hope useful for you.

Cordial greetings.