Проще сделать ваш XML-документ в STRING
сразу, который затем вы можете отправить в CL_GUI_TEXTEDIT
элемент управления:
data xmlstring type string.
data ostream type ref to if_ixml_ostream.
ostream = streamfactory->create_ostream_cstring( xmlstring ).
document->render( ostream = ostream recursive = 'X' ).
...
data textedit type ref to cl_gui_textedit.
create object textedit
exporting
parent = container.
textedit->set_textstream( xmlstring ).
Если вам необходимо выполнить рендерингв двоичные данные, тогда я предлагаю вам использовать XSTRING
для этого:
data xmlxstring type xstring.
data ostream type ref to if_ixml_ostream.
ostream = streamfactory->create_ostream_xstring( xmlxstring ).
document->render( ostream = ostream recursive = 'X' ).
Затем вы можете преобразовать двоичные данные в строку, используя класс CL_ABAP_CONV_IN_CE
, предоставленный SAP:
data converter type ref to cl_abap_conv_in_ce.
converter = cl_abap_conv_in_ce=>create( input = xmlxstring ).
data xmlstring type string.
converter->read( importing data = xmlstring ).
Который вы можете отправить на свой CL_GUI_TEXTEDIT
элемент управления:
data textedit type ref to cl_gui_textedit.
create object textedit
exporting
parent = container.
textedit->set_textstream( xmlstring ).
Обратите внимание, что в случае проблем с кодировкой вы можете установить кодировку для объекта ostreamперед рендерингом, и объект конвертера позволяет указать кодировку при его создании.