Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

size internal table with method create_istream_itable for xml

Former Member
0 Likes
463

Hi,

in my program i don't use the method cl_gui_frontend_services=>gui_upload

because my file is on application server.

so how can i find the size of the table for using the method create_istream_itable .

when i use for testing the cl_gui_frontend_services=>gui_upload wit my xml file i have 6411. in the table i have 26 lines.

so is the number of characters??

thanks for your answers

serge

  TYPES: BEGIN OF t_xml_line,
          data(256) TYPE x,
        END OF t_xml_line.
  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_document        TYPE REF TO if_ixml_document,
        l_node            TYPE REF TO if_ixml_node,
        l_xmldata         TYPE string,
        l_elem            TYPE REF TO if_ixml_element,
        l_root_node       TYPE REF TO if_ixml_node,
        l_next_node       TYPE REF TO if_ixml_node,
        l_name            TYPE string,
        l_iterator        TYPE REF TO if_ixml_node_iterator,
        l_xml_table       TYPE TABLE OF t_xml_line,
        l_xml_line        TYPE t_xml_line,
        l_xml_table_size  TYPE i,
        l_filename TYPE string,
        parseerror TYPE REF TO if_ixml_parse_error,
        str TYPE string,
        i TYPE i,
        count TYPE i,
        index TYPE i.
  TYPES: BEGIN OF xml_line,
          data(256) TYPE x,
        END OF xml_line.

  DATA: element TYPE REF TO if_ixml_element.

  DATA: attributes TYPE REF TO if_ixml_named_node_map,

        attribute  TYPE REF TO if_ixml_attribute,

        child      TYPE REF TO if_ixml_node.

  DATA: xml_table TYPE TABLE OF xml_line,
        w_xml TYPE xml_line,
        filename TYPE  string,
        xml_size       TYPE i.

  DATA : w_det TYPE w_csvdet,
  off TYPE i,
  l TYPE i.


  LOOP AT t_csvdet INTO w_det.
    FIND l_line IN filename_in MATCH OFFSET off MATCH LENGTH l.
    CLEAR filename_in+off(l).
    CONCATENATE filename_in w_det-fact_or '.xml' INTO filename_in.
    OPEN DATASET filename_in FOR INPUT IN BINARY MODE.

    DO.
      READ DATASET filename_in INTO w_xml-data.
      IF sy-subrc NE 0.
        EXIT.
      ENDIF.

      APPEND  w_xml TO xml_table.
      CLEAR : w_xml.
    ENDDO.

    CLOSE DATASET filename_in.
    l_ixml = cl_ixml=>create( ).
    l_streamfactory = l_ixml->create_stream_factory( ).
    l_document = l_ixml->create_document( ).
    l_istream = l_streamfactory->create_istream_itable( table = xml_table
    size = l_xml_table_size ).

1 REPLY 1
Read only

Former Member
0 Likes
339

Did you find a solution?