Create a new Node in existing xml file using CL_IXML

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

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_eleme

Similar Messages

  • How I can append new node in existing  XML file

    I've just begun learning DOM XML , so I'm currently at a very beginner level.
    I have an existing XML file that I would like to add an additional node to before saving it to another variable.
    how I can append new node in this file.
    now this code is overwrite new data over old data
    The code looks like this:
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.TransformerFactoryConfigurationError;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Attr;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    public class VerbXMLWriter
        static String EVerb3;
        static String englishTranslate3;
        public void VerbXMLWriter(String EVerb, String englishTranslate )
             EVerb3 = EVerb;
             englishTranslate3=englishTranslate;
        File xmlFile = new File("VerbDB.xml");
        DocumentBuilderFactory factory =  DocumentBuilderFactory.newInstance();
        try
         DocumentBuilder builder = factory.newDocumentBuilder();
         Document document = builder.newDocument();
        Element root = document.createElement("Verb");
         document.appendChild(root);
         Element verb = document.createElement(EVerb3);
         verb.setAttribute("EnglishTranslate",englishTranslate3);
         root.appendChild(verb);
         Source xmlSource = new DOMSource( document );
         Result result = new StreamResult( new FileOutputStream(xmlFile) );
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer =
        transformerFactory.newTransformer();
        transformer.setOutputProperty( "indent", "yes" );
         transformer.transform( xmlSource, result );
      catch(TransformerFactoryConfigurationError factoryError )
        factoryError.printStackTrace();
       catch (ParserConfigurationException pc)
           pc.printStackTrace();
       catch (IOException io)
          io.printStackTrace();
       catch(Exception excep )
           excep.printStackTrace();
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <Verb>
    <Play EnglishTranslate="playing" />
    </Verb>Edited by: itb402 on Mar 9, 2008 6:05 AM

    in your code you are already appending new nodes to the root node. so what exactly is your problem? The following steps are usually taken for appending a new node:
    1. Read the XML document
    2. Build a DOM tree
    3. Navigate to the node under which you want to insert the new node
    4. Create a new node.
    5. Insert the new node to the node selected in point #3.
    ~Debopam

  • I am unabele to create nodes to existing xml file

    I want to append and update the nodes and attributes to existing xml file.
    presently am using dom api, am i do that with dom or sax,if so how can i plz ...

    http://java.sun.com/xml/tutorial_intro.html

  • Updating an existing xml file using java code

    hi friends,
    I have simple problem, I have an existing xml file and I want to update some of the values in the file.
    can any one send me the java code for that.
    bye.
    -harish

    org.w3c.dom.Document d = parseXmlFile("D:/www/Detailcache/detail.xml", false);
    public static Document parseXmlFile(String filename, boolean validating) {
    try {
    // Create a builder factory
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setValidating(validating);
    // Create the builder and parse the file
    Document doc = factory.newDocumentBuilder().parse(new File(filename));
    return doc;
    } catch (Exception e) {
    System.out.println("ERROR-->");e.printStackTrace();
    return null;
    look at .. for more related examples
    http://javaalmanac.com/egs/javax.xml.parsers/BasicDom.html?l=rel

  • Can't Figure Out How to Add Nodes to Existing XML File by Attribute

    <?xml version="1.0" encoding="UTF-8"?>
    -<Project_Data>
    -<Project_Info>
    <Client>frankLINVILE</Client>
    <Name>COOKIE MONSTER INDICTMNET</Name>
    <Number>198883cookie</Number>
    <Tester>JK</Tester>
    <Reviewer>CM</Reviewer>
    <Location>Sesame Street, MD</Location>
    <SD>03/10/2015</SD>
    <Boring_Header>Boring1</Boring_Header>
    <Sample_Header>Sample2</Sample_Header>
    <Depth_Header>Depth3</Depth_Header>
    <Location_Header>Location4</Location_Header>
    <SD_Header>Sample Date5</SD_Header>
    <Remarks>asdf sdafas</Remarks>
    <Is_LOC_Global>True</Is_LOC_Global>
    <Is_SD_Global>True</Is_SD_Global>
    <Count>12</Count>
    <Has_MC_Data>N</Has_MC_Data>
    </Project_Info>
    -<Samples>
    -<Sample ID="@B1 S1 1-2 SESAME STREET, MD 03/10/2015">
    <Boring>b1</Boring>
    <Sample>s1</Sample>
    <Depth>1-2</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>frank1</Remarks>
    <Login_Order>1</Login_Order>
    <Report_Order>1</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@B2 S2 2-2 SESAME STREET, MD 03/10/2015">
    <Boring>b2</Boring>
    <Sample>s2</Sample>
    <Depth>2-2</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>frakn2</Remarks>
    <Login_Order>2</Login_Order>
    <Report_Order>2</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@B3 S3 3-3 SESAME STREET, MD 03/10/2015">
    <Boring>b3</Boring>
    <Sample>s3</Sample>
    <Depth>3-3</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>frakn3</Remarks>
    <Login_Order>3</Login_Order>
    <Report_Order>3</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@B4 S4 4-4 SESAME STREET, MD 03/10/2015">
    <Boring>b4</Boring>
    <Sample>s4</Sample>
    <Depth>4-4</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi4</Remarks>
    <Login_Order>4</Login_Order>
    <Report_Order>4</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@B5 S5 5-5 SESAME STREET, MD 03/10/2015">
    <Boring>b5</Boring>
    <Sample>s5</Sample>
    <Depth>5-5</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi5</Remarks>
    <Login_Order>5</Login_Order>
    <Report_Order>5</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@B6 S6 6-6 SESAME STREET, MD 03/10/2015">
    <Boring>b6</Boring>
    <Sample>s6</Sample>
    <Depth>6-6</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi6</Remarks>
    <Login_Order>6</Login_Order>
    <Report_Order>6</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@B7 S7 7-7 SESAME STREET, MD 03/10/2015">
    <Boring>b7</Boring>
    <Sample>s7</Sample>
    <Depth>7-7</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi7</Remarks>
    <Login_Order>9</Login_Order>
    <Report_Order>9</Report_Order>
    <Has_Data>N</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@B8 S8 8-8 SESAME STREET, MD 03/10/2015">
    <Boring>b8</Boring>
    <Sample>s8</Sample>
    <Depth>8-8</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi8</Remarks>
    <Login_Order>10</Login_Order>
    <Report_Order>10</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@B9 S9 9-9 SESAME STREET, MD 03/10/2015">
    <Boring>b9</Boring>
    <Sample>s9</Sample>
    <Depth>9-9</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi9</Remarks>
    <Login_Order>11</Login_Order>
    <Report_Order>11</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@B10 S10 10-10 SESAME STREET, MD 03/10/2015">
    <Boring>b10</Boring>
    <Sample>s10</Sample>
    <Depth>10-10</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi10</Remarks>
    <Login_Order>12</Login_Order>
    <Report_Order>12</Report_Order>
    <Has_Data>N</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@FRANK FARKN2">
    <Boring>frank</Boring>
    <Sample>farkn2</Sample>
    <Depth> </Depth>
    <Location> </Location>
    <SD> </SD>
    <Remarks> </Remarks>
    <Login_Order>7</Login_Order>
    <Report_Order>7</Report_Order>
    <Has_Data>N</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    -<Sample ID="@FRANK FRANK">
    <Boring>frank</Boring>
    <Sample>frank</Sample>
    <Depth> </Depth>
    <Location> </Location>
    <SD> </SD>
    <Remarks> </Remarks>
    <Login_Order>8</Login_Order>
    <Report_Order>8</Report_Order>
    <Has_Data>N</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    </Samples>
    </Project_Data
    What I need to do is find the sample by its ID attribute...IN THEN add the following
    <MC_Data>
    <Wet>blah</Wet
    <Dry>blah</Dry>
    </MC_Data>
    Here is the code I have now, which doesn't work...
    Public Sub XML_Add_Child_Node_Group(Sample_ID As String, Which_Category As Integer)
            If File.Exists(Program_Settings_File.PG_Filepath) = False Then MsgBox("The program settings file for the program has been moved or deleted! Cancelled.") : Exit Sub
            Dim XMLFile As New Xml.XmlDocument, NewNode As Xml.XmlElement = Nothing, NewChild As Xml.XmlElement = Nothing
            XMLFile.Load(Current_File.Current_File_Path)
            Dim Root_Node As XmlNode = XMLFile.SelectSingleNode("/Project_Data/Samples/[@ID='" & Sample_ID & "']")
            Dim Root_Element As Xml.XmlElement = CType(XMLFile.SelectSingleNode("/Project_Data/Samples/[@ID='" & Sample_ID & "']"), XmlElement)
            '1 = Add MC nodes
            Select Which_Category
                Case 1
                    '----Add new node.
                    NewNode = XMLFile.CreateElement("MC_Data")
                    '----Add children nodes.
                    NewChild = XMLFile.CreateElement("MC_Wet") : NewNode.AppendChild(NewChild)
                    'MsgBox(NewNode.Name)
                    NewChild = XMLFile.CreateElement("MC_Dry") : NewNode.AppendChild(NewChild)
                    NewChild = XMLFile.CreateElement("MC_Tare") : NewNode.AppendChild(NewChild)
                    NewChild = XMLFile.CreateElement("MC_Tare_No") : NewNode.AppendChild(NewChild)
                    NewChild = XMLFile.CreateElement("MC_Remarks") : NewNode.AppendChild(NewChild)
                    NewChild = XMLFile.CreateElement("MC_MC") : NewNode.AppendChild(NewChild)
                    Root_Element.AppendChild(NewNode)
            End Select
            '----Add entire tree.
            XMLFile.Save(Current_File.Current_File_Path)
        End Sub
    No matter what, it will not add these nodes. Can anyone help me out? Thanks ahead of time...
    Shawn

    Here is the XML
    <?xml version="1.0" encoding="UTF-8"?>
    <Project_Data>
    <Project_Info>
    <Client>frankLINVILE</Client>
    <Name>COOKIE MONSTER INDICTMNET</Name>
    <Number>198883cookie</Number>
    <Tester>JK</Tester>
    <Reviewer>CM</Reviewer>
    <Location>Sesame Street, MD</Location>
    <SD>03/10/2015</SD>
    <Boring_Header>Boring1</Boring_Header>
    <Sample_Header>Sample2</Sample_Header>
    <Depth_Header>Depth3</Depth_Header>
    <Location_Header>Location4</Location_Header>
    <SD_Header>Sample Date5</SD_Header>
    <Remarks>asdf sdafas</Remarks>
    <Is_LOC_Global>True</Is_LOC_Global>
    <Is_SD_Global>True</Is_SD_Global>
    <Count>12</Count>
    <Has_MC_Data>N</Has_MC_Data>
    </Project_Info>
    <Samples>
    <Sample ID="@B1 S1 1-2 SESAME STREET, MD 03/10/2015">
    <Boring>b1</Boring>
    <Sample>s1</Sample>
    <Depth>1-2</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>frank1</Remarks>
    <Login_Order>1</Login_Order>
    <Report_Order>1</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@B2 S2 2-2 SESAME STREET, MD 03/10/2015">
    <Boring>b2</Boring>
    <Sample>s2</Sample>
    <Depth>2-2</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>frakn2</Remarks>
    <Login_Order>2</Login_Order>
    <Report_Order>2</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@B3 S3 3-3 SESAME STREET, MD 03/10/2015">
    <Boring>b3</Boring>
    <Sample>s3</Sample>
    <Depth>3-3</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>frakn3</Remarks>
    <Login_Order>3</Login_Order>
    <Report_Order>3</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@B4 S4 4-4 SESAME STREET, MD 03/10/2015">
    <Boring>b4</Boring>
    <Sample>s4</Sample>
    <Depth>4-4</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi4</Remarks>
    <Login_Order>4</Login_Order>
    <Report_Order>4</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@B5 S5 5-5 SESAME STREET, MD 03/10/2015">
    <Boring>b5</Boring>
    <Sample>s5</Sample>
    <Depth>5-5</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi5</Remarks>
    <Login_Order>5</Login_Order>
    <Report_Order>5</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@B6 S6 6-6 SESAME STREET, MD 03/10/2015">
    <Boring>b6</Boring>
    <Sample>s6</Sample>
    <Depth>6-6</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi6</Remarks>
    <Login_Order>6</Login_Order>
    <Report_Order>6</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@B7 S7 7-7 SESAME STREET, MD 03/10/2015">
    <Boring>b7</Boring>
    <Sample>s7</Sample>
    <Depth>7-7</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi7</Remarks>
    <Login_Order>9</Login_Order>
    <Report_Order>9</Report_Order>
    <Has_Data>N</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@B8 S8 8-8 SESAME STREET, MD 03/10/2015">
    <Boring>b8</Boring>
    <Sample>s8</Sample>
    <Depth>8-8</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi8</Remarks>
    <Login_Order>10</Login_Order>
    <Report_Order>10</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@B9 S9 9-9 SESAME STREET, MD 03/10/2015">
    <Boring>b9</Boring>
    <Sample>s9</Sample>
    <Depth>9-9</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi9</Remarks>
    <Login_Order>11</Login_Order>
    <Report_Order>11</Report_Order>
    <Has_Data>Y</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@B10 S10 10-10 SESAME STREET, MD 03/10/2015">
    <Boring>b10</Boring>
    <Sample>s10</Sample>
    <Depth>10-10</Depth>
    <Location>SESAME STREET, MD</Location>
    <SD>03/10/2015</SD>
    <Remarks>hi10</Remarks>
    <Login_Order>12</Login_Order>
    <Report_Order>12</Report_Order>
    <Has_Data>N</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@FRANK FARKN2">
    <Boring>frank</Boring>
    <Sample>farkn2</Sample>
    <Depth> </Depth>
    <Location> </Location>
    <SD> </SD>
    <Remarks> </Remarks>
    <Login_Order>7</Login_Order>
    <Report_Order>7</Report_Order>
    <Has_Data>N</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    <Sample ID="@FRANK FRANK">
    <Boring>frank</Boring>
    <Sample>frank</Sample>
    <Depth> </Depth>
    <Location> </Location>
    <SD> </SD>
    <Remarks> </Remarks>
    <Login_Order>8</Login_Order>
    <Report_Order>8</Report_Order>
    <Has_Data>N</Has_Data>
    <Has_MC_Data>N</Has_MC_Data>
    <Has_GSA_Data>N</Has_GSA_Data>
    <Has_P_Data>N</Has_P_Data>
    <Has_C_Data>N</Has_C_Data>
    <Has_H_Data>N</Has_H_Data>
    <Has_USDA_Data>N</Has_USDA_Data>
    <Has_CM_Data>N</Has_CM_Data>
    <Has_UCS_Data>N</Has_UCS_Data>
    <Has_Cons_Data>N</Has_Cons_Data>
    <Has_ConsSw_Data>N</Has_ConsSw_Data>
    <Has_Pills_Data>N</Has_Pills_Data>
    <Has_UCSC_Data>N</Has_UCSC_Data>
    </Sample>
    </Samples>
    </Project_Data>
    jdweng

  • How to add a new node into existing XML Document

    I have a very simple question. I use XML as input argument for PL/SQL procedure that inserts data into the corresponding table. All I have to do is to add a new tag for Primary Key column and put sequence.NEXTVAL - value into it.
    <ROWSET>
    <ROW>
    -- Add <ID_table_name> value </ID_table_name> ??????
    <FIELD1>data1</FIELD1>
    <FIELD2>data1</FIELD2>
    </ROW>
    </ROWSET>
    I've parsed XML, but I couldn't find the way how to insert the new NODE.
    If you know how to use packages XMLDOM, XMLParser for this purpose, please help me!
    Oracle version 8.1.7

    DOMParser parser=new DOMParser();
    XMLDocument xmlDocument=parser.getdocument();
    Node node=xmlDocument.selectSingleNode("/ROWSET/ROW");
    Element element=xmlDocument.createElement(String tagName)
    node.appendChild(element);

  • How to Update existing XML File Using Java Swing

    Hi,
    I am reading XML file and getting keywords into JList. When i add some keywords into JList through textfield and remove keywords JList, then after click on save button it should update xml file. How can i do it ?
    Please provide me some code tips for updating xml file
    This is the code that i am using for reading XML File:
    import javax.swing.*;
    import java.awt.event.*;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    import java.io.IOException;
    import java.util.*;
    import java.text.Collator;
    import java.util.regex.*;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import com.cloudgarden.layout.AnchorConstraint;
    import com.cloudgarden.layout.AnchorLayout;
    public class getKeywords extends JFrame implements ActionListener
    static JPanel p;
    static JLabel lbl;
    static JButton btnSave,btnAdd,btnRemove;
    static String path;
    static Vector v;
    static JList lstCur;
    static JTextField txtKey;
    Document dom;
    static image imgval;
    NodeList nodelstImage;
    static AnchorLayout anchorLay;
    private DefaultListModel lstCurModel;
    public getKeywords()
         super("Current Keywords");
        v=new Vector();
        p=new JPanel();
        txtKey=new JTextField(10);
        btnAdd=new JButton("Add");
        btnRemove=new JButton("Remove");
        btnSave=new JButton("Save");
        lbl=new JLabel("Current Keywords");
        lstCurModel=new DefaultListModel();
            lstCur=new JList();
            JScrollPane scr=new JScrollPane(lstCur);
        runExample();
         lstCur.setModel(lstCurModel);
         p.add(lbl);
         p.add(scr);
         p.add(txtKey);
         p.add(btnAdd);
         p.add(btnRemove);
         p.add(btnSave);
         add(p);
         btnAdd.addActionListener(this);
         btnRemove.addActionListener(this);
         btnSave.addActionListener(this);
         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    public static void main(String arg[])
         getKeywords g=new getKeywords();
         g.resize(250,400);
         g.setVisible(true);     
    public void actionPerformed(ActionEvent ae)
         if(ae.getSource()==btnAdd)
              lstCurModel.addElement(txtKey.getText());
         if(ae.getSource()==btnRemove)
              lstCurModel.remove(lstCur.getSelectedIndex());
         if(ae.getSource()==btnSave)
              //Code to Write
         public void runExample()
              //Parse the XML file and get the DOM object
              ParseXMLFile();
              //Get the Detail of the Image Document
              parseImageDocument();
              //Get the Detail of the LML Document
              //parseLMLDocument();
              //System.out.println(lmlval.Title);
         public void ParseXMLFile()
              //Get the Factory
              DocumentBuilderFactory builderFac = DocumentBuilderFactory.newInstance();
              try
                   //Using factory get an instance of the Document Builder
                   DocumentBuilder builder = builderFac.newDocumentBuilder();
                   //parse using builder to get DOM representation of the XML file
                   dom = builder.parse("LML.xml");
              catch(ParserConfigurationException pce)
                   pce.printStackTrace();
              catch(SAXException sax)
                   sax.printStackTrace();
              catch(IOException ioex)
                   ioex.printStackTrace();
         public void parseImageDocument()
              //Get the root element
              Element docImgEle = dom.getDocumentElement();
              //Get a nodelist for <Image> Element
              nodelstImage =  docImgEle.getElementsByTagName("Image");
              if(nodelstImage != null && nodelstImage.getLength() > 0)
                   for(int i = 0; i < nodelstImage.getLength(); i++)
                        //Get the LML elements
                        Element el = (Element)nodelstImage.item(i);
                        //Get the LML object
                        getImage myImgval = new getImage();
                        imgval = myImgval.getimage(el);
                        v.addElement(new String(imgval.Thumb));
                        String[] x = Pattern.compile(",").split(imgval.Keys);
                        for (int s=0; s<x.length; s++)
                        lstCurModel.addElement(x[s].trim());
                        //System.out.println(x[s].trim());
    }     Thanks
    Nitin

    You should update your DOM document to represent the changes that you want made.
    Then, using the Transformation API you simply transform your document onto a stream representing your file. Something like this:
    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    // TODO - set indentation amount!
    Source source = new DOMSource(dom);
    Result result = new StreamResult(file);
    transformer.transform(source, result);Hope this helps.

  • Unmarshalling a DOM node to an XML file with JAXB

    I'm trying to unmarshall a DOM node to an XML file using JAXB. However I keep receiving a NullPointerException. This only seems to occur when I create the DOM Node from scratch. The stack trace looks like the following:
    java.lang.NullPointerException
            at com.sun.xml.bind.unmarshaller.SAXUnmarshallerHandlerImpl.startElement
    (SAXUnmarshallerHandlerImpl.java:87)
            at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:109)
            at com.sun.xml.bind.unmarshaller.DOMScanner.parse(DOMScanner.java:64)
            at com.sun.xml.bind.unmarshaller.UnmarshallerImpl.unmarshal(Unmarshaller
    Impl.java:149)
            at Main.main(Main.java:103)(If I unmarshal an XML file into a DOM node, I can successfully marshall the DOM node out to a new XML file using JAXB without error.)
    Any insight into what I am doing wrong would be greatly appreciated!
    Sample code and XSD follow...
    Sample Code:
    import itemlistsample.*;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Iterator;
    import java.util.List;
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;
    import javax.xml.bind.Unmarshaller;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Node;
    import org.w3c.dom.Text;
    public class Main
      public static void main(String[] args)
          try
              JAXBContext jc = JAXBContext.newInstance( "itemlistsample" );
              Unmarshaller u = jc.createUnmarshaller();
              * Set up DOM Node Document Object.
              DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
              dbf.setNamespaceAware(true);                   
              DocumentBuilder db = dbf.newDocumentBuilder(); 
              Document doc = db.newDocument();
              System.out.println();
              System.out.println();
              System.out.println("Create a DOM Node and unmarshall to an XML file");
              * Generate elements within DOM document
              Element itemListElt = (Element)doc.createElement("item_list");
              Element itemInfo = (Element)doc.createElement("item_info");
              Element name = (Element)doc.createElement("name");
              Element price = (Element)doc.createElement("price");
              * 3-Ring Binder @ 4.99
              name.appendChild(doc.createTextNode("3-Ring Binder"));
              itemInfo.appendChild(name);
              price.appendChild(doc.createTextNode("4.99"));
              itemInfo.appendChild(price);
              itemListElt.appendChild(itemInfo);
              * Large Paper Clips @ 1.23
              itemInfo = (Element)doc.createElement("item_info");
              name = (Element)doc.createElement("name");
              price = (Element)doc.createElement("price");
              name.appendChild(doc.createTextNode("Large Paper Clips"));
              itemInfo.appendChild(name);
              price.appendChild(doc.createTextNode("1.23"));
              itemInfo.appendChild(price);
              itemListElt.appendChild(itemInfo);
              doc.appendChild(itemListElt);
              * Display DOM document as a sanity check
              itemListElt = doc.getDocumentElement();
              System.out.println(itemListElt.getTagName());
              NodeList nl = itemListElt.getElementsByTagName("item_info");
              traverse("  ", nl.item(0));
              * Use JAXB to unmarshal the DOM document into
              * an instance of the generated JAXB class for
              * the root element.  Stack trace occurs here!
              ItemListType il = (ItemListType)u.unmarshal(doc);
              * Marshal to an XML file
              Marshaller m = jc.createMarshaller();
              m.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE );
              m.marshal( il, new FileOutputStream("item_new.xml") );
          catch (Exception e)
         e.printStackTrace();
      public static void traverse(String indent, Node n)
        if (n != null)
          if (n.getNodeName() != null)
            System.out.println(indent + n.getNodeName());
            traverse(indent + "  ", n.getFirstChild());
          if (n.getNodeValue() != null)
            System.out.println(indent + n.getNodeValue());
          traverse(indent, n.getNextSibling());
    }Sample XSD:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <xsd:element name="item_list" type="ItemListType"/>
         <xsd:complexType name="ItemListType">
              <xsd:sequence>
                   <xsd:element name="item_info" type="ItemInfoType" maxOccurs="unbounded"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="ItemInfoType">
              <xsd:sequence>
                   <xsd:element name="name" type="xsd:string"/>
                   <xsd:element name="price" type="xsd:double"/>
              </xsd:sequence>
         </xsd:complexType>
    </xsd:schema>

    Modified schema
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="item_list">     
    <xsd:complexType>          
    <xsd:sequence>               
    <xsd:element ref="item_info" maxOccurs="unbounded"/>     
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="item_info">
         <xsd:complexType>          
    <xsd:sequence>               
    <xsd:element name="name" type="xsd:string"/>     
         <xsd:element name="price" type="xsd:double"/>     
         </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>

  • How to Save a XML file using Document Object

    Hai all,
    I am new to XML and i created a application to insert a node in the XML file using org.w3c.dom.Document object. And want to know which method has to be used to store the Document object into a XML fille.

    The standard way would be to use a transformer with no transformation where the destination is a StreamResult.
    something like:
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer();
    transformer.transform(new DOMSource(doc), new StreamResult("output.xml"));

  • How to create new XML file using retreived XML content by using SAX API?

    hi all,
    * How to create new XML file using retreived XML content by using SAX ?
    * I have tried my level best, but output is coming invalid format, my code is follows,
    XMLFileParser.java class :-
    import java.io.StringReader;
    import java.io.StringWriter;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMResult;
    import javax.xml.transform.sax.SAXSource;
    import javax.xml.transform.sax.SAXTransformerFactory;
    import javax.xml.transform.sax.TransformerHandler;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.xml.sax.Attributes;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.XMLFilterImpl;
    public class PdfParser extends XMLFilterImpl {
        private TransformerHandler handler;
        Document meta_data;
        private StringWriter meta_data_text = new StringWriter();
        public void startDocument() throws SAXException {
        void startValidation() throws SAXException {
            StreamResult streamResult = new StreamResult(meta_data_text);
            SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
            try
                handler = factory.newTransformerHandler();
                Transformer transformer = handler.getTransformer();
                transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
                transformer.setOutputProperty(OutputKeys.INDENT, "yes");
                handler.setResult(streamResult);
                handler.startDocument();
            catch (TransformerConfigurationException tce)
                System.out.println("Error during the parse :"+ tce.getMessageAndLocation());
            super.startDocument();
        public void startElement(String namespaceURI, String localName,
                String qualifiedName, Attributes atts) throws SAXException {
            handler.startElement(namespaceURI, localName, qualifiedName, atts);
            super.startElement(namespaceURI, localName, qualifiedName, atts);
        public void characters(char[] text, int start, int length)
                throws SAXException {
            handler.characters(text, start, length);
            super.characters(text, start, length);
        public void endElement(String namespaceURI, String localName,
                String qualifiedName) throws SAXException {
            super.endElement("", localName, qualifiedName);
            handler.endElement("", localName, qualifiedName);
        public void endDocument() throws SAXException {
        void endValidation() throws SAXException {
            handler.endDocument();
            try {
                TransformerFactory transfactory = TransformerFactory.newInstance();
                Transformer trans = transfactory.newTransformer();
                SAXSource sax_source = new SAXSource(new InputSource(new StringReader(meta_data_text.toString())));
                DOMResult dom_result = new DOMResult();
                trans.transform(sax_source, dom_result);
                meta_data = (Document) dom_result.getNode();
                System.out.println(meta_data_text);
            catch (TransformerConfigurationException tce) {
                System.out.println("Error occurs during the parse :"+ tce.getMessageAndLocation());
            catch (TransformerException te) {
                System.out.println("Error in result transformation :"+ te.getMessageAndLocation());
    } CreateXMLFile.java class :-
    Sax.startDocument();
    Sax.startValidation();
    Sax.startElement("", "pdf", "pdf", new AttributesImpl());
    Sax.startElement("", "basic-metadata", "basic-metadata", new AttributesImpl());          
    String xmp_str = new String(meta_data.getByteArray(),"UTF8");
    char[] xmp_arr = xmp_str.toCharArray();
    Sax.characters(xmp_arr, 0, xmp_arr.length);
    Sax.endElement("", "pdf", "pdf");
    Sax.endValidation();
    Sax.endDocument();
    Sax.endElement("", "basic-metadata", "basic-metadata");* In CreateXMLFile.java
    class, I have retreived the xml content in the meta_data object, after that i have converted into character array and this will be sends to SAX
    * In this case , the XML file created successfully but the retreived XML content added as an text in between basic-metadata Element, that is, retreived XML content
    is not an XML type text, it just an Normal text Why that ?
    * Please help me what is the problem in my code?
    Cheers,
    JavaImran

    Sax.startDocument();
    Sax.startValidation();
    Sax.startElement("", "pdf", "pdf", new AttributesImpl());
    Sax.startElement("", "basic-metadata", "basic-metadata", new AttributesImpl());          
    String xmp_str = new String(meta_data.getByteArray(),"UTF8");
    char[] xmp_arr = xmp_str.toCharArray();
    Sax.characters(xmp_arr, 0, xmp_arr.length);
    </code><code>Sax.endElement("", "basic-metadata", "basic-metadata");</code>
    <code class="jive-code jive-java">Sax.endElement("", "pdf", "pdf");
    Sax.endValidation();
    Sax.endDocument();     
    * I HAVE CHANGED MY AS PER YOUR SUGGESTION, NOW SAME RESULT HAS COMING.
    * I AM NOT ABLE TO GET THE EXACT OUTPUT.,WHY THAT ?
    Thanks,
    JavaImran{code}

  • SAX: How to create new XML file using SAX parser

    Hi,
    Please anybody help me to create a XML file using the Packages in the 5.0 pack of java. I have successfully created it reading the tag names and values from database using DOM but can i do this using SAX.
    I am successful to read XML using SAX, now i want to create new XML file for some tags and its values using SAX.
    How can i do this ?
    Sachin Kulkarni

    SAX is a parser, not a generator.Well,
    you can use it to create an XML file too. And it will take care of proper encoding, thus being much superior to a normal textwriter:
    See the following code snippet (out is a OutputStream):
    PrintWriter pw = new PrintWriter(out);
          StreamResult streamResult = new StreamResult(pw);
          SAXTransformerFactory tf = (SAXTransformerFactory) TransformerFactory.newInstance();
          //      SAX2.0 ContentHandler.
          TransformerHandler hd = tf.newTransformerHandler();
          Transformer serializer = hd.getTransformer();
          serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");//
          serializer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"pdfBookmarks.xsd");
          serializer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"http://schema.inplus.de/pdf/1.0");
          serializer.setOutputProperty(OutputKeys.METHOD,"xml");
          serializer.setOutputProperty(OutputKeys.INDENT, "yes");
          hd.setResult(streamResult);
          hd.startDocument();
          //Get a processing instruction
          hd.processingInstruction("xml-stylesheet","type=\"text/xsl\" href=\"mystyle.xsl\"");
          AttributesImpl atts = new AttributesImpl();
          atts.addAttribute("", "", "someattribute", "CDATA", "test");
          atts.addAttribute("", "", "moreattributes", "CDATA", "test2");
           hd.startElement("", "", "MyTag", atts);
    String curTitle = "Something inside a tag";
              hd.characters(curTitle.toCharArray(), 0, curTitle.length());
        hd.endElement("", "", "MyTag");
          hd.endDocument();
    You are responsible for proper nesting. SAX takes care of encoding.
    Hth
    ;-) stw

  • Updating an existing  xml file in java

    Hi,
    i need to update an existing xml file with new nodes. But i don.t know how to do that. i can read and write a new xml file . But updaton seems too difficult for me.
    my xml structure is like this
    <main_node>
    <node1>
    <name> name1</name1>
    <id>ID</id>
    </node1>
    <node2>
    <name2> name2</name2.
    <id>ID</id>
    </node2.
    </main_node>
    i want to insert node3 in this structure.
    please help, it,s urgent;
    Thanks in Advance

    here is the code if ur using dom..
    Node node4 = doc.createTextNode(name3);
    Element element4=doc.createElement("name3");
    element4.append(node4);
    c one thing that u should take care here is that u have created and is reflected on ly in ur document object and not in xml..for that u have to write some more code like this
    // This method writes a DOM document to a file
    public static void writeXmlFile(Document doc, String filename) {
    try {
    // Prepare the DOM document for writing
    Source source = new DOMSource(doc);
    // Prepare the output file
    File file = new File(filename);
    Result result = new StreamResult(file);
    // Write the DOM document to the file
    Transformer xformer = TransformerFactory.newInstance().newTransformer();
    xformer.transform(source, result);
    } catch (TransformerConfigurationException e) {
    } catch (TransformerException e) {
    look this code..that will help u
    regards
    [email protected]

  • How do i update an existing XML File?

    Hello, I have the following xml file gps.xml:<?xml version="1.0"?>
    <!DOCTYPE gps SYSTEM "gps.dtd">
    <gps>
       <latitude>43.00000</latitude>
       <longitude>-83.00000</longitude>
    </gps> I already have methods written to get the values. But how can I change these values and update the file to reflect these changes?
    thanks for your help!

    Hi, I already have this following code. I would just like to add a method to it to update the existing XML file with different lat/lon coordinates. Could you please help me out with it? thanks
    import java.io.*;
    import java.io.PrintWriter;
    import java.net.MalformedURLException;
    import java.net.URL;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import org.xml.sax.*;
    public class Gps implements java.io.Serializable {
        private double latitude_;
        private double longitude_;
        public Gps(Document doc) {
            setup(doc.getDocumentElement());
        public Gps(String uri) throws IOException, SAXException, ParserConfigurationException {
            setup(uri);
        public void setup(Document doc) {
            setup(doc.getDocumentElement());
        public void makeElement(Node parent) {
            Document doc;
            if (parent instanceof Document) {
                doc = (Document)parent;
            } else {
                doc = parent.getOwnerDocument();
            Element element = doc.createElement("gps");
            int size;
            URelaxer.setElementPropertyByDouble(element, "latitude", this.latitude_);
            URelaxer.setElementPropertyByDouble(element, "longitude", this.longitude_);
            parent.appendChild(element);
         public Document makeDocument() throws ParserConfigurationException {
            Document doc = UJAXP.makeDocument();
            makeElement(doc);
            return (doc);
        public final double getLatitude() {
            return (latitude_);
        public final void setLatitude(double latitude) {
            this.latitude_ = latitude;
        public final double getLongitude() {
            return (longitude_);
        public final void setLongitude(double longitude) {
            this.longitude_ = longitude;
       public final void updateXmlFile(double latitude, double longitude) {
         // something???
        public final void updateXmlFile(double latitude, double longitude) {
            this.latitude_ = latitude;
            this.longitude_ = longitude;
        public String makeTextDocument() {
            StringBuffer buffer = new StringBuffer();
            makeTextElement(buffer);
            return (new String(buffer));
        public void makeTextElement(StringBuffer buffer) {
            int size;
            buffer.append("<gps");
            buffer.append(">");
            buffer.append("<latitude>");
            buffer.append(Double.toString(getLatitude()));
            buffer.append("</latitude>");
            buffer.append("<longitude>");
            buffer.append(Double.toString(getLongitude()));
            buffer.append("</longitude>");
            buffer.append("</gps>");
        public String toString() {
            try {
                return (makeTextDocument());
            } catch (Exception e) {
                return (super.toString());
    }

  • How to update Elements value inside existing xml file

    Hi Gurus,
    Am somehow new to java and working on xml with java, i have a scenario where i want to update the elements of my existing xml file, i know its possible as i have posted one code on this forum which updates the values of the arrtibutes of existing xml file. Ref :
    http://forum.java.sun.com/thread.jsp?forum=34&thread=186091&start=15&range=15&hilite=false&q=
    But am not able to use the same code to update the vlaues of the attribute.
    if i have this xml file :
    <?xml version="1.0"?>
    <RootElement>
    <Transaction>
    <Task9>
    <TaskID>Task9</TaskID>
    <Description>My Test Case</Description>
    <Time>12/12/2004</Time>
    </Task9>
    </Transaction>
    <Transaction>
    <Task2>
    <TaskID>Task2</TaskID>
    <Description>Testing my xml</Description>
    <Time>12/12/2004</Time>
    </Task2>
    </Transaction>
    </RootElemen>
    Now i want to update teh </Description> and </Time> field using the code that i have given above in the link.
    If any one can help me ill really appreciate.

    The value of an element is stored in a child node of that element. For example, let's say that "e" references the node <Description> then:
    e.getFirstChild().getNodeValue() => "My Test Case"

  • Creating XML File Using xmldom Package

    How can I create an XML file from scratch using the PL/SQL xmldom package?
    I want to create an XML file using the xmldom package instead of building the individual tags as strings of VARCHAR2 character data. There is quite a bit of documentation regarding manipulating input XML files using DOM -- but not for creating XML files from scratch given known "tagnames" (<lastName>) and retrieved database "values" ("Smith").
    <person>
    <lastName>Smith</lastName>
    </person>
    Is there any documentation that you can recommend?
    Thank you.

    Here is an example.
    The create_file procedure creates the file.
    The other procedures are generic procs that can be used with any XML.
    PROCEDURE create_file_with_root(po_xmldoc OUT xmldom.DOMDocument,
    pi_root_tag IN VARCHAR2,
                                            po_root_element OUT xmldom.domelement,
                                            po_root_node OUT xmldom.domnode,
                                            pi_doctype_url IN VARCHAR2) IS
    xmldoc xmldom.DOMDocument;
    root xmldom.domnode;
    root_node xmldom.domnode;
    root_element xmldom.domelement;
    record_node xmldom.domnode;
    newelenode xmldom.DOMNode;
    BEGIN
    xmldoc := xmldom.newDOMDocument;
    xmldom.setVersion(xmldoc, '1.0');
    xmldom.setDoctype(xmldoc, pi_root_tag, pi_doctype_url,'');
    -- Create the root --
    root := xmldom.makeNode(xmldoc);
    -- Create the root element in the file --
    create_element_and_append(xmldoc, pi_root_tag, root, root_element, root_node);
    po_xmldoc := xmldoc;
    po_root_node := root_node;
    po_root_element := root_element;
    END create_file_with_root;
    PROCEDURE create_element_and_append(pi_xmldoc IN OUT xmldom.DOMDocument,
    pi_element_name IN VARCHAR2,
                                            pi_parent_node IN xmldom.domnode,
                                            po_new_element OUT xmldom.domelement,
                                            po_new_node OUT xmldom.domnode) IS
    element xmldom.domelement;
    child_node xmldom.domnode;
    newelenode xmldom.DOMNode;
    BEGIN
    element := xmldom.createElement(pi_xmldoc, pi_element_name);
    child_node := xmldom.makeNode(element);
    -- Append the new node to the parent --
    newelenode := xmldom.appendchild(pi_parent_node, child_node);
    po_new_node := child_node;
    po_new_element := element;
    END create_element_and_append;
    FUNCTION create_text_element(pio_xmldoc IN OUT xmldom.DOMDocument, pi_element_name IN VARCHAR2,
    pi_element_data IN VARCHAR2, pi_parent_node IN xmldom.domnode) RETURN xmldom.domnode IS
    parent_node xmldom.domnode;                                   
    child_node xmldom.domnode;
    child_element xmldom.domelement;
    newelenode xmldom.DOMNode;
    textele xmldom.DOMText;
    compnode xmldom.DOMNode;
    BEGIN
    create_element_and_append(pio_xmldoc, pi_element_name, pi_parent_node, child_element, child_node);
    parent_node := child_node;
    -- Create a text node --
    textele := xmldom.createTextNode(pio_xmldoc, pi_element_data);
    child_node := xmldom.makeNode(textele);
    -- Link the text node to the new node --
    compnode := xmldom.appendChild(parent_node, child_node);
    RETURN newelenode;
    END create_text_element;
    PROCEDURE create_file IS
    xmldoc xmldom.DOMDocument;
    root_node xmldom.domnode;
    xml_doctype xmldom.DOMDocumentType;
    root_element xmldom.domelement;
    record_element xmldom.domelement;
    record_node xmldom.domnode;
    parent_node xmldom.domnode;
    child_node xmldom.domnode;
    newelenode xmldom.DOMNode;
    textele xmldom.DOMText;
    compnode xmldom.DOMNode;
    BEGIN
    xmldoc := xmldom.newDOMDocument;
    xmldom.setVersion(xmldoc, '1.0');
    create_file_with_root(xmldoc, 'root', root_element, root_node, 'test.dtd');
    xmldom.setAttribute(root_element, 'interface_type', 'EXCHANGE_RATES');
    -- Create the record element in the file --
    create_element_and_append(xmldoc, 'record', root_node, record_element, record_node);
    parent_node := create_text_element(xmldoc, 'title', 'Mr', record_node);
    parent_node := create_text_element(xmldoc, 'name', 'Joe', record_node);
    parent_node := create_text_element(xmldoc,'surname', 'Blogs', record_node);
    -- Create the record element in the file --
    create_element_and_append(xmldoc, 'record', root_node, record_element, record_node);
    parent_node := create_text_element(xmldoc, 'title', 'Mrs', record_node);
    parent_node := create_text_element(xmldoc, 'name', 'A', record_node);
    parent_node := create_text_element(xmldoc, 'surname', 'B', record_node);
    -- write the newly created dom document into the buffer assuming it is less than 32K
    xmldom.writeTofile(xmldoc, 'c:\laiki\willow_data\test.xml');
    EXCEPTION
    WHEN xmldom.INDEX_SIZE_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Index Size error');
    WHEN xmldom.DOMSTRING_SIZE_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'String Size error');
    WHEN xmldom.HIERARCHY_REQUEST_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Hierarchy request error');
    WHEN xmldom.WRONG_DOCUMENT_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Wrong doc error');
    WHEN xmldom.INVALID_CHARACTER_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Invalid Char error');
    WHEN xmldom.NO_DATA_ALLOWED_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Nod data allowed error');
    WHEN xmldom.NO_MODIFICATION_ALLOWED_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'No mod allowed error');
    WHEN xmldom.NOT_FOUND_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Not found error');
    WHEN xmldom.NOT_SUPPORTED_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Not supported error');
    WHEN xmldom.INUSE_ATTRIBUTE_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'In use attr error');
    WHEN OTHERS THEN
    dbms_output.put_line('exception occured' || SQLCODE || SUBSTR(SQLERRM, 1, 100));
    END create_file;

Maybe you are looking for

  • Fulltext search of binary files outside of database in SQL 2012/Server 2012

    This may be more of a Windows Server 2012 question but I'm not sure. I have a system that holds large amounts of binary files (pdf, doc, etc.).  The files themselves are held outside the database in a folder and a SQL table holds the metadata.  I use

  • Journal Entry report

    SAP experts, I need to find a JE report with the following columns in particular for the client. I know I can go to FB03, S_ALR_87012286, S_ALR_87012287 and S_ALR_87012289, but I am not a able to get a simple reports with these columns. Company code,

  • FBZG - Failed Bill of Exchange - copy previous document dates

    Example Bill of Exchange configured 1 BoE per invoice Invoice 1 - dated 30 march 2010    1000EUR Run F110 and get document putting 1000EUR into Bills receivable When bill due 1000 EUR debit / credit bank / bank clearing Run F_72 bank clearing and bil

  • Go to url action not working, and no tech can fix the issue?  hard to believe nobody can help....

    i attempt to write "navto://article name" and it gives a error 101 when i pre-view it on my testing ipad.  because of this i cannot send my folio to apple.  i have been on the phone with just about every tech in the call center, and nobody has been a

  • DB13 - Scheduled Update Statistics not run - Error

    Hello gurus, I´m faccing with an error in DB13, I scheduled Update statistics every day but it did not run due an error. I think this may resulted because an authorization problem. In /usr/sap is with this permissions: drwxr-xr-x  15 orad01 dba   409