‎2008 Apr 28 9:30 AM
Hello,
I'm creating an XML file using the IF_IXML_DOCUMENT class.
This is going great, except that I'm not able to create a CDATA section in an element.
I've already tried to concatenate the <![CDATA[ into my variable, but the < is translated to <.
So that didn't do the trick.
Anybody knows how to do this?
I know that there is a create_cdata_section method but I don't see how to use it.
Thanks in advance,
Andy.
‎2008 Apr 30 9:56 AM
‎2008 May 05 11:45 AM
‎2009 Mar 04 12:06 AM
I'm struggling with same. Can you please share the solution?
‎2009 Mar 04 12:38 AM
Got it. Thanks anyways!
Example Code:
DATA:
ixml TYPE REF TO if_ixml,
document TYPE REF TO if_ixml_document,
parent TYPE REF TO if_ixml_node,
element TYPE REF TO if_ixml_element,
cdata TYPE REF TO if_ixml_cdata_section.
ixml = cl_ixml=>create( ).
document = ixml->create_document( ).
element = document->create_element( name = 'RootNode' ).
document->append_child( new_child = element ).
parent = element.
element = document->create_element( name = 'ChildNode' ).
parent->append_child( new_child = element ).
parent = element.
element = document->create_element( name = 'SomeOtherTag' ).
element->set_attribute( name = 'SomeValue' value = '4711' ).
cdata = document->create_cdata_section( `I0u2TRx6NqlX00002X56um` ).
element = document->create_element( name = 'Example' ).
element->append_child( new_child = cdata ).
parent->append_child( new_child = element ).
‎2009 May 25 10:40 AM
i CAN NOT DO IT WELL,could you please tell me how to do? how to add Cata?
<?xml version="1.0" encoding="utf-8" ?>
- <faxmakerdata>
- <recipients>
- <fax>
- <recipient>
<FIRSTNAME><![CDATA[]]></FIRSTNAME>
<LASTNAME><![CDATA[]]></LASTNAME>
<COMPANY><![CDATA[]]></COMPANY>
<DEPARTMENT><![CDATA[]]></DEPARTMENT>
<EMAILADDRESS><![CDATA[]]></EMAILADDRESS>
<NUMBER><![CDATA[27]]></NUMBER>
<VOICENUMBER><![CDATA[]]></VOICENUMBER>
</recipient>
</fax>
</recipients>
</faxmakerdata>
FORM create_xml.
CLASS cl_ixml DEFINITION LOAD.
l_ixml = cl_ixml=>create( ).
CALL METHOD l_ixml->create_encoding
EXPORTING
byte_order = 0
character_set = 'UTF-8'
RECEIVING
rval = l_encoding.
CALL METHOD l_ixml->create_document
RECEIVING
rval = l_doc.
CALL METHOD l_doc->set_encoding
EXPORTING
encoding = l_encoding.
CALL METHOD l_doc->create_simple_element
EXPORTING
name = 'faxmakerdata'
parent = l_doc
RECEIVING
rval = l_root.
CALL METHOD l_doc->create_simple_element
EXPORTING
name = 'recipients'
parent = l_root
RECEIVING
rval = l_recipients.
CALL METHOD l_root->append_child
EXPORTING
new_child = l_comment
RECEIVING
rval = l_rval.
PERFORM fill_itab2xml TABLES itab_matnr
USING 'fax'
'recipient'
l_recipients.
*CALL METHOD L_DOC->create_cdata_section( '81276160' ).
L_DOC->create_element( name = 'Example' ).
*L_ROOT->append_child( new_child = l_cdata ).
CALL METHOD l_ixml->create_stream_factory
RECEIVING
rval = l_factory.
CALL METHOD l_factory->create_ostream_itable
EXPORTING
table = xml_table
RECEIVING
rval = l_ostream.
CALL METHOD l_doc->render
EXPORTING
ostream = l_ostream
recursive = 'X'.
CALL METHOD l_ostream->get_num_written_raw
RECEIVING
rval = xml_size.
ENDFORM. "create_xml