<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Does anyone has a program which parse xml to txt file in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/does-anyone-has-a-program-which-parse-xml-to-txt-file/m-p/3043023#M720248</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Does anyone has a program which parse xml to txt file&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 08 Nov 2007 09:10:42 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-11-08T09:10:42Z</dc:date>
    <item>
      <title>Does anyone has a program which parse xml to txt file</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/does-anyone-has-a-program-which-parse-xml-to-txt-file/m-p/3043023#M720248</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Does anyone has a program which parse xml to txt file&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2007 09:10:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/does-anyone-has-a-program-which-parse-xml-to-txt-file/m-p/3043023#M720248</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-08T09:10:42Z</dc:date>
    </item>
    <item>
      <title>Re: Does anyone has a program which parse xml to txt file</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/does-anyone-has-a-program-which-parse-xml-to-txt-file/m-p/3043024#M720249</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tina,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please try this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zxml MESSAGE-ID bcciixmlt3_msg LINE-SIZE 1000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*INCLUDE bcciixml_decl.&lt;/P&gt;&lt;P&gt;*INCLUDE bcciixml_impl..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;  BEGIN OF t_xml_line,&lt;/P&gt;&lt;P&gt;    data(256) TYPE x,&lt;/P&gt;&lt;P&gt;  END OF t_xml_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  BEGIN OF i_data OCCURS 0,&lt;/P&gt;&lt;P&gt;    field       TYPE string,&lt;/P&gt;&lt;P&gt;    attr        TYPE string,&lt;/P&gt;&lt;P&gt;    value       TYPE string,&lt;/P&gt;&lt;P&gt;  END OF i_data,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  i_xml              TYPE TABLE OF t_xml_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  if_ixml            TYPE REF TO if_ixml,&lt;/P&gt;&lt;P&gt;  if_document        TYPE REF TO if_ixml_document,&lt;/P&gt;&lt;P&gt;  if_stream_factory  TYPE REF TO if_ixml_stream_factory,&lt;/P&gt;&lt;P&gt;  if_istream         TYPE REF TO if_ixml_istream,&lt;/P&gt;&lt;P&gt;  if_parser          TYPE REF TO if_ixml_parser,&lt;/P&gt;&lt;P&gt;  if_node            TYPE REF TO if_ixml_node,&lt;/P&gt;&lt;P&gt;  if_text            TYPE REF TO if_ixml_text,&lt;/P&gt;&lt;P&gt;  if_parse_error     TYPE REF TO if_ixml_parse_error,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_string           TYPE string,&lt;/P&gt;&lt;P&gt;  w_count            TYPE i,&lt;/P&gt;&lt;P&gt;  w_index            TYPE i,&lt;/P&gt;&lt;P&gt;  w_length           TYPE i,&lt;/P&gt;&lt;P&gt;  w_save             TYPE string,&lt;/P&gt;&lt;P&gt;  w_err              TYPE c,&lt;/P&gt;&lt;P&gt;  w_file             TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_file             TYPE rlgrap-filename&lt;/P&gt;&lt;P&gt;                     DEFAULT 'c:\temp\Request_RG.xml'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.&lt;/P&gt;&lt;P&gt;  PERFORM select_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM open_file.&lt;/P&gt;&lt;P&gt;  CHECK w_err IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM read_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- render the DOM back into an output stream/internal table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: postream TYPE REF TO if_ixml_ostream.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; postream = pstreamfactory-&amp;gt;create_ostream_itable( table = xml_table )&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL METHOD pdocument-&amp;gt;render( ostream   = postream ).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**-- how many bytes were written to the table?&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; totalsize = postream-&amp;gt;get_num_written_raw( ).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- write the XML document back to the frontend&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONCATENATE filename '.out' INTO filename.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONDENSE filename NO-GAPS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*CALL FUNCTION 'WS_DOWNLOAD'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         BIN_FILESIZE            = totalSize&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         FILENAME                = filename&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         FILETYPE                = 'BIN'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         DATA_TAB                = xml_table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         OTHERS                  = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;*ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- print the whole DOM tree as a list...&lt;/P&gt;&lt;P&gt;  if_node = if_document.&lt;/P&gt;&lt;P&gt;  PERFORM convert_xml USING if_node.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM output_xml.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  break david.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  select_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM select_file.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    li_file_table   TYPE filetable,&lt;/P&gt;&lt;P&gt;    lwa_file_table  TYPE LINE OF filetable,&lt;/P&gt;&lt;P&gt;    lw_return       TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           file_name     = p_file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           mask_too_long = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           OTHERS        = 2.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE i007(zu). " 'Error in getting filename'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Dialog anzeigen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD cl_gui_frontend_services=&amp;gt;file_open_dialog&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      file_filter             = '(&lt;STRONG&gt;.&lt;/STRONG&gt;)'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      file_table              = li_file_table&lt;/P&gt;&lt;P&gt;      rc                      = lw_return&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_open_dialog_failed = 1&lt;/P&gt;&lt;P&gt;      cntl_error              = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    READ TABLE li_file_table INTO lwa_file_table INDEX 1.&lt;/P&gt;&lt;P&gt;    MOVE lwa_file_table TO p_file.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " select_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  open_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_file.&lt;/P&gt;&lt;P&gt;  w_file = p_file.&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_frontend_services=&amp;gt;gui_upload&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = w_file&lt;/P&gt;&lt;P&gt;      filetype                = 'BIN'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      filelength              = w_length&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      data_tab                = i_xml.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE w000.&lt;/P&gt;&lt;P&gt;    w_err = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " open_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  read_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM read_file.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lw_line    TYPE i,&lt;/P&gt;&lt;P&gt;    lw_column  TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLASS cl_ixml DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- create the main factory&lt;/P&gt;&lt;P&gt;  if_ixml = cl_ixml=&amp;gt;create( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- create the initial document&lt;/P&gt;&lt;P&gt;  if_document = if_ixml-&amp;gt;create_document( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- create the stream factory&lt;/P&gt;&lt;P&gt;  if_stream_factory = if_ixml-&amp;gt;create_stream_factory( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- create an input stream for the table&lt;/P&gt;&lt;P&gt;  if_istream =&lt;/P&gt;&lt;P&gt;     if_stream_factory-&amp;gt;create_istream_itable( table = i_xml&lt;/P&gt;&lt;P&gt;                                               size  = w_length ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- create the parser&lt;/P&gt;&lt;P&gt;  if_parser =&lt;/P&gt;&lt;P&gt;     if_ixml-&amp;gt;create_parser( stream_factory = if_stream_factory&lt;/P&gt;&lt;P&gt;                             istream        = if_istream&lt;/P&gt;&lt;P&gt;                             document       = if_document ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- parse the stream&lt;/P&gt;&lt;P&gt;  IF if_parser-&amp;gt;parse( ) NE 0.&lt;/P&gt;&lt;P&gt;    IF if_parser-&amp;gt;num_errors( ) NE 0.&lt;/P&gt;&lt;P&gt;      w_count = if_parser-&amp;gt;num_errors( ).&lt;/P&gt;&lt;P&gt;      WRITE: w_count, ' parse errors have occured:'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      w_index = 0.&lt;/P&gt;&lt;P&gt;      WHILE w_index &amp;lt; w_count.&lt;/P&gt;&lt;P&gt;        if_parse_error = if_parser-&amp;gt;get_error( index = w_index ).&lt;/P&gt;&lt;P&gt;        lw_line = if_parse_error-&amp;gt;get_line( ).&lt;/P&gt;&lt;P&gt;        WRITE: 'line: ', lw_line.&lt;/P&gt;&lt;P&gt;        lw_column = if_parse_error-&amp;gt;get_column( ).&lt;/P&gt;&lt;P&gt;        WRITE: 'column: ', lw_column.&lt;/P&gt;&lt;P&gt;        w_string = if_parse_error-&amp;gt;get_reason( ).&lt;/P&gt;&lt;P&gt;        WRITE: w_string.&lt;/P&gt;&lt;P&gt;        ADD 1 TO w_index.&lt;/P&gt;&lt;P&gt;      ENDWHILE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- we don't need the stream any more, so let's close it...&lt;/P&gt;&lt;P&gt;  CALL METHOD if_istream-&amp;gt;close( ).&lt;/P&gt;&lt;P&gt;  CLEAR if_istream.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " read_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  convert_xml&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM convert_xml USING value(fuif_node) TYPE REF TO if_ixml_node.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lw_indent      TYPE i,&lt;/P&gt;&lt;P&gt;    lw_text        TYPE REF TO if_ixml_text,&lt;/P&gt;&lt;P&gt;    lw_string      TYPE string,&lt;/P&gt;&lt;P&gt;    if_nodemap     TYPE REF TO if_ixml_named_node_map,&lt;/P&gt;&lt;P&gt;    lw_count       TYPE i,&lt;/P&gt;&lt;P&gt;    lw_index       TYPE i,&lt;/P&gt;&lt;P&gt;    lw_attr        TYPE REF TO if_ixml_node,&lt;/P&gt;&lt;P&gt;    lw_name        TYPE string,&lt;/P&gt;&lt;P&gt;    lw_value       TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lw_indent  = fuif_node-&amp;gt;get_height( ) * 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE fuif_node-&amp;gt;get_type( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Feld-Bezeichnungen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN if_ixml_node=&amp;gt;co_node_element.&lt;/P&gt;&lt;P&gt;      lw_string = fuif_node-&amp;gt;get_name( ).&lt;/P&gt;&lt;P&gt;      i_data-field = lw_string.&lt;/P&gt;&lt;P&gt;      w_save = lw_string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Attribute&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if_nodemap = fuif_node-&amp;gt;get_attributes( ).&lt;/P&gt;&lt;P&gt;      IF NOT if_nodemap IS INITIAL.&lt;/P&gt;&lt;P&gt;        lw_count = if_nodemap-&amp;gt;get_length( ).&lt;/P&gt;&lt;P&gt;        DO lw_count TIMES.&lt;/P&gt;&lt;P&gt;          lw_index  = sy-index - 1.&lt;/P&gt;&lt;P&gt;          lw_attr   = if_nodemap-&amp;gt;get_item( lw_index ).&lt;/P&gt;&lt;P&gt;          lw_name   = lw_attr-&amp;gt;get_name( ).&lt;/P&gt;&lt;P&gt;          lw_value  = lw_attr-&amp;gt;get_value( ).&lt;/P&gt;&lt;P&gt;          i_data-attr = lw_name.&lt;/P&gt;&lt;P&gt;          i_data-value = lw_value.&lt;/P&gt;&lt;P&gt;          APPEND i_data.&lt;/P&gt;&lt;P&gt;          CLEAR: i_data-value, i_data-attr.&lt;/P&gt;&lt;P&gt;        ENDDO.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Feld-Inhalte&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN if_ixml_node=&amp;gt;co_node_text.&lt;/P&gt;&lt;P&gt;      lw_text ?= fuif_node-&amp;gt;query_interface( ixml_iid_text ).&lt;/P&gt;&lt;P&gt;      IF lw_text-&amp;gt;ws_only( ) IS INITIAL.&lt;/P&gt;&lt;P&gt;        lw_string = fuif_node-&amp;gt;get_value( ).&lt;/P&gt;&lt;P&gt;        i_data-field = w_save.&lt;/P&gt;&lt;P&gt;        i_data-value = lw_string.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT i_data-value IS INITIAL.&lt;/P&gt;&lt;P&gt;    APPEND i_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR i_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fuif_node = fuif_node-&amp;gt;get_first_child( ).&lt;/P&gt;&lt;P&gt;  WHILE NOT fuif_node IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM convert_xml USING fuif_node.&lt;/P&gt;&lt;P&gt;    fuif_node = fuif_node-&amp;gt;get_next( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDWHILE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " convert_xml&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  output_xml&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM output_xml.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lw_col              TYPE c,&lt;/P&gt;&lt;P&gt;    lw_field(20)        TYPE c,&lt;/P&gt;&lt;P&gt;    lw_attr(20)         TYPE c,&lt;/P&gt;&lt;P&gt;    lw_value(100)       TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_data.&lt;/P&gt;&lt;P&gt;    IF lw_col = 'X'.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR 3.&lt;/P&gt;&lt;P&gt;      CLEAR lw_col.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR 4.&lt;/P&gt;&lt;P&gt;      lw_col = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE: i_data-field TO lw_field,&lt;/P&gt;&lt;P&gt;          i_data-attr  TO lw_attr,&lt;/P&gt;&lt;P&gt;          i_data-value TO lw_value.&lt;/P&gt;&lt;P&gt;    WRITE: /1 lw_field, 25 lw_attr, 49 lw_value.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " output_xml&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2007 09:54:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/does-anyone-has-a-program-which-parse-xml-to-txt-file/m-p/3043024#M720249</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-08T09:54:35Z</dc:date>
    </item>
  </channel>
</rss>

