<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Create a new Node in existing xml file using CL_IXML in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/create-a-new-node-in-existing-xml-file-using-cl-ixml/m-p/3859372#M927635</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Friends i have to create a new node on existing file of xml. using CL_IXML class methods Append child .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 09 May 2008 10:39:50 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-05-09T10:39:50Z</dc:date>
    <item>
      <title>Create a new Node in existing xml file using CL_IXML</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/create-a-new-node-in-existing-xml-file-using-cl-ixml/m-p/3859372#M927635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Friends i have to create a new node on existing file of xml. using CL_IXML class methods Append child .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2008 10:39:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/create-a-new-node-in-existing-xml-file-using-cl-ixml/m-p/3859372#M927635</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-09T10:39:50Z</dc:date>
    </item>
    <item>
      <title>Re: Create a new Node in existing xml file using CL_IXML</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/create-a-new-node-in-existing-xml-file-using-cl-ixml/m-p/3859373#M927636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   searching information of XML I find your post.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   Post my code source that I have (at the moment) but if you think something that changed , tell me please.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;TYPE-POOLS: ixml.
*************************************************************
* macros
*
DEFINE write_xml.
  write: / 'XML:', &amp;amp;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 = '&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&amp;lt;C dr="ñ" "&amp;gt;&amp;lt;/C&amp;gt;'.
l_var_xmldata2 = '&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;'.
l_var_xmldata3 = '&amp;lt;elementFormDefault="qualified"'.
l_var_xmldata4 = 'attributeFormDefault="unqualified""&amp;gt;&amp;lt;/C&amp;gt;'.

*CONCATENATE l_var_xmldata2 '&amp;lt;elementFormDefault="qualified" "&amp;gt;&amp;lt;/C&amp;gt;' 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=&amp;gt;create( ).
* Create factory object for data streams
l_streamfactory = l_ixml-&amp;gt;create_stream_factory( ).
* Create object for input stream
l_istream = l_streamfactory-&amp;gt;create_istream_string( string =
l_var_xmldata ).
*       Creating the dom object model
        l_document = l_ixml-&amp;gt;create_document( ).
* Create parser
l_parser = l_ixml-&amp;gt;create_parser( document = l_document
stream_factory = l_streamfactory
istream = l_istream ).
* create dom tree by parsing
if l_parser-&amp;gt;parse( ) &amp;lt;&amp;gt; 0.
data: j(2).
j = '9'.
* do exception handling here
* return.
endif.
*create output objetct
* create a output stream
  l_ostream = l_streamfactory-&amp;gt;create_ostream_itable( table = xmltab ).

  charset = 'SAP*'.
  IF NOT charset IS INITIAL.
*   set an document encoding (optional)
    l_encoding = l_ixml-&amp;gt;create_encoding( character_set = charset
                                      byte_order = 0 ).
    success  = l_ostream-&amp;gt;set_encoding( encoding = l_encoding ).
  ENDIF.

l_renderer =
l_ixml-&amp;gt;create_renderer( document = l_document
ostream = l_ostream ).


  IF l_renderer-&amp;gt;render( ) &amp;lt;&amp;gt; 0.
    WRITE: / 'ERROR: document rendering'.
    EXIT.
  ENDIF.

call method l_ostream-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;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-&amp;gt;create_simple_element(
                    name = elemento
                    parent = l_element_CurrencyCode ).



*   Creating a stream factory
    l_streamfactory = l_ixml-&amp;gt;create_stream_factory( ).
*   Connect internal XML table to stream factory
    l_ostream = l_streamfactory-&amp;gt;create_ostream_itable( table = l_xml_table ).

*   Rendering the document
    l_renderer = l_ixml-&amp;gt;create_renderer( ostream  = l_ostream
                                          document = l_document ).
    l_rc = l_renderer-&amp;gt;render( ).

*   Saving the XML document
    l_xml_size = l_ostream-&amp;gt;get_num_written_raw( ).

    CALL METHOD cl_gui_frontend_services=&amp;gt;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 &amp;lt;&amp;gt; 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
*&amp;amp;--------------------------------------------------------------------
**&amp;amp; Form process_dom
*&amp;amp;--------------------------------------------------------------------
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-&amp;gt;create_iterator( ).

*get current node
node = iterator-&amp;gt;get_next( ).


*loop over all nodes
while not node is initial.
indent = node-&amp;gt;get_height( ) * 2.
indent = indent + 20.

num_children = node-&amp;gt;num_children( ).
case node-&amp;gt;get_type( ).
when if_ixml_node=&amp;gt;co_node_element.

*element node
name = node-&amp;gt;get_name( ).
nodemap = node-&amp;gt;get_attributes( ).
node_root = node-&amp;gt;get_root( ).
name_root = node_root-&amp;gt;get_name( ).
write: / 'ELEMENT :'.
write: at indent name color col_positive inverse.
write: 'NUM_CHILDREN:', num_children.
write: 'ROOT:', name_root.
node_parent = node-&amp;gt;get_parent( ).
name2 = node_parent-&amp;gt;get_name( ).
write: 'NAME2: ' , name2.

if not nodemap is initial.

*attributes
count = nodemap-&amp;gt;get_length( ).
do count times.
index = sy-index - 1.
attr = nodemap-&amp;gt;get_item( index ).
name = attr-&amp;gt;get_name( ).

prefix = attr-&amp;gt;get_namespace_prefix( ).
value = attr-&amp;gt;get_value( ).
write: / 'ATTRIBUTE:'.
write: at indent name color col_heading inverse, '=',
value color col_total inverse.
enddo.
endif.
when if_ixml_node=&amp;gt;co_node_text or
if_ixml_node=&amp;gt;co_node_cdata_section.

*text node
value = node-&amp;gt;get_value( ).
write: / 'VALUE :'.


*mjprocha
node_parent = node-&amp;gt;get_parent( ).
write: at indent value color col_group inverse.
name2 = node_parent-&amp;gt;get_name( ).
write: 'NAME2: ' , name2.
endcase.

*advance to next node
node = iterator-&amp;gt;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-&amp;gt;create_iterator( ).
* get current node
  node = iterator-&amp;gt;get_next( ).

* loop over all nodes
  WHILE NOT node IS INITIAL.
    indent = node-&amp;gt;get_height( ) * 2.
    indent = indent + 20.

    CASE node-&amp;gt;get_type( ).
      WHEN if_ixml_node=&amp;gt;co_node_element.
*       element node
        name    = node-&amp;gt;get_name( ).
        nodemap = node-&amp;gt;get_attributes( ).
        WRITE: / 'ELEMENT  :'.
        WRITE: AT indent name COLOR COL_POSITIVE INVERSE.
        IF NOT nodemap IS INITIAL.
*         attributes
          count = nodemap-&amp;gt;get_length( ).
          DO count TIMES.
            index  = sy-index - 1.
            attr   = nodemap-&amp;gt;get_item( index ).
            name   = attr-&amp;gt;get_name( ).
            prefix = attr-&amp;gt;get_namespace( ).
            value  = attr-&amp;gt;get_value( ).
            WRITE: / 'ATTRIBUTE:'.
            WRITE: AT indent name  COLOR COL_HEADING INVERSE, '=',
                             value COLOR COL_TOTAL   INVERSE.
          ENDDO.
        ENDIF.
      WHEN if_ixml_node=&amp;gt;co_node_text.
*       text node
        value  = node-&amp;gt;get_value( ).
        WRITE: / 'TEXT     :'.
        WRITE: AT indent value COLOR COL_GROUP INVERSE.
    ENDCASE.
*   advance to next node
    node = iterator-&amp;gt;get_next( ).
  ENDWHILE.
ENDFORM.                    "traverse_dom&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope useful for you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cordial greetings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Jul 2008 12:25:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/create-a-new-node-in-existing-xml-file-using-cl-ixml/m-p/3859373#M927636</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-24T12:25:28Z</dc:date>
    </item>
  </channel>
</rss>

