|
Código fuente -
Ejemplos
|
|
Domingo, 07 de Diciembre de 2003 14:44 |
Ejemplo conversion datos a XML
REPORT z.
DATA: it_table LIKE dd02l OCCURS 0.
DATA: l_dom TYPE REF TO IF_IXML_ELEMENT,
m_document TYPE REF TO IF_IXML_DOCUMENT,
g_ixml TYPE REF TO IF_IXML,
w_string TYPE XSTRING,
w_size TYPE I,
w_result TYPE I,
w_line TYPE STRING,
it_xml TYPE DCXMLLINES,
s_xml LIKE LINE OF it_xml,
w_rc LIKE SY-SUBRC.
START-OF-SELECTION.
SELECT * FROM dd02l INTO TABLE it_table
up TO 10 rows.
END-OF-SELECTION.
********************************************
**** initialize iXML-Framework ****
********************************************
WRITE / 'initialiazing iXML:'.
class cl_ixml definition load.
g_ixml = cl_ixml=>create( ).
check NOT g_ixml IS INITIAL.
WRITE: 'ok'.
********************************************
**** create DOM from SAP data ****
********************************************
WRITE / 'creating iXML doc:'.
m_document = g_ixml->create_document( ).
check NOT m_document IS INITIAL.
WRITE: 'ok'.
WRITE / 'converting DATA TO DOM 1:'.
CALL FUNCTION 'SDIXML_DATA_TO_DOM'
EXPORTING
NAME = 'IT_TABLE'
DATAOBJECT = it_table[]
IMPORTING
DATA_AS_DOM = l_dom
CHANGING
DOCUMENT = m_document
EXCEPTIONS
ILLEGAL_NAME = 1
OTHERS = 2.
IF SY-SUBRC = 0. WRITE 'ok'.
ELSE WRITE: 'Err =', SY-SUBRC.
ENDIF.
check NOT l_dom IS INITIAL.
WRITE / 'appending DOM to iXML doc:'.
w_rc = m_document->append_child( new_child = l_dom ).
IF w_rc IS INITIAL WRITE 'ok'.
ELSE WRITE: 'Err =', w_rc.
ENDIF.
********************************************
**** visualize iXML (DOM) ****
********************************************
WRITE / 'displaying DOM:'.
CALL FUNCTION 'SDIXML_DOM_TO_SCREEN'
EXPORTING
DOCUMENT = m_document
EXCEPTIONS
NO_DOCUMENT = 1
OTHERS = 2.
IF SY-SUBRC = 0. WRITE 'ok'.
ELSE WRITE: 'Err =', SY-SUBRC.
ENDIF.
********************************************
**** convert DOM to XML doc (table) ****
********************************************
WRITE / 'converting DOM TO XML:'.
CALL FUNCTION 'SDIXML_DOM_TO_XML'
EXPORTING
DOCUMENT = m_document
* PRETTY_PRINT = ' '
IMPORTING
XML_AS_STRING = w_string
SIZE = w_size
TABLES
XML_AS_TABLE = it_xml
EXCEPTIONS
NO_DOCUMENT = 1
OTHERS = 2.
IF SY-SUBRC = 0. WRITE 'ok'.
ELSE WRITE: 'Err =', SY-SUBRC.
ENDIF.
WRITE / 'XML as string of size:', w_size, / w_string.
describe TABLE it_xml lines w_result.
WRITE / 'XML as table of', w_result, 'lines:'..
LOOP AT it_xml INTO s_xml.
WRITE s_xml.
ENDLOOP.
WRITE / 'end of processing'.
* end of code
|