UPLOAD DATA
FROM XML FILE AND READ THROUGH INTERNAL TABLES .
UPLOAD DATA FROM A XML FILE AND READ THE XML DATA USING INTERNAL TABLES .
HERE THE LOGIC OF DISPLAYING OR SAVING THE DATA TO INTERNAL TABLES MAY BE DIFFERENT ACCORDING TO YOUR CONDITION .
[ TEST WORK DONE BY : SANJEEV SINGH ]
XML- FILE . :
********&--------------------------------------------------------------------
REPORT ZREAD_XML.
*****&---------------------------------------------------------------------*
*****& Data Declaration
*****&---------------------------------------------------------------------*
DATA: filename TYPE string.
data: xmldata type xstring .
data: begin of xml_tab occurs 0,
raw type x,
end of xml_tab .
data: size type i .
data: result_xml type standard table of smum_xmltb WITH HEADER LINE.
data: return type standard table of bapiret2 .
types : BEGIN OF ty_st ,
id type i,
name TYPE string ,
place type string,
END OF ty_st .
data : itab TYPE TABLE OF ty_st,
wa TYPE ty_st .
FILENAME = 'D:\TEST.XML'.
call function 'GUI_UPLOAD'
exporting
filename = filename
filetype = 'BIN'
has_field_separator = ' '
header_length = 0
importing
filelength = size
tables
data_tab = xml_tab
exceptions
others = 1.
call function 'SCMS_BINARY_TO_XSTRING'
exporting
input_length = size
* FIRST_LINE = 0
* LAST_LINE = 0
importing
buffer = xmldata
tables
binary_tab = xml_tab
exceptions
failed = 1
others = 2
.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
CALL FUNCTION 'SMUM_XML_PARSE'
EXPORTING
xml_input = xmldata
TABLES
xml_table = result_xml
return = return .
loop at result_xml.
IF RESULT_XML-TYPE = 'A' .
if result_xml-cname = 'ID'.
WA-id = result_xml-cvalue.
CONTINUE.
ENDIF.
ENDIF.
IF RESULT_XML-TYPE = 'V' .
IF result_xml-cname = 'NAME'.
WA-name = result_xml-cvalue.
CONTINUE.
ENDIF.
ENDIF.
IF RESULT_XML-TYPE = 'V' .
IF result_xml-cname = 'PLACE'.
WA-place = result_xml-cvalue.
endif.
ENDIF.
IF WA-PLACE IS NOT INITIAL .
APPEND WA TO ITAB .
CLEAR WA .
ENDIF.
ENDLOOP.
LOOP AT ITAB INTO WA.
WRITE :/ WA-ID , WA-NAME , WA-PLACE.
ENDLOOP.
No comments:
Post a Comment