У меня есть программа, которая отображает XML-документ через функциональный модуль DISPLAY_XML_DOCUMENT
:
DATA(xml_document) = new cl_xml_document( ).
xml_document->parse_string( `<ROOT><city><name>Paris</name>` &&
`<country><name>France</name><iso>FRA</iso></country>` &&
`</city></ROOT>` ).
" Display the whole document
CALL FUNCTION 'DISPLAY_XML_DOCUMENT'
EXPORTING
xml_document = xml_document
EXCEPTIONS
OTHERS = 1.
" Extract the country name and ISO code
DATA(element) = CAST if_ixml_element(
xml_document->find_node( name = '/ROOT/city/country' ) ).
" Display the whole document
CALL FUNCTION 'DISPLAY_XML_DOCUMENT'
EXPORTING
xml_document = element
EXCEPTIONS
OTHERS = 1.
При первом вызове функционального модуля DISPLAY_XML_DOCUMENT
отображается весь XML-документ:
Затем объект element
инициализируется с помощью <country><name>France</name><iso>FRA</iso></country>
.Он имеет тип IF_IXML_ELEMENT
.
Увы, отображение элемента выдает ошибку времени выполнения CX_SY_DYN_CALL_ILLEGAL_TYPE , поскольку ожидается объект типа CL_XML_DOCUMENT_BASE
, а не элемент типа IF_IXML_ELEMENT
.
Как отобразить объект element
через DISPLAY_XML_DOCUMENT
?