You are on page 1of 2

CONSTANTS:

c_document(11) VALUE '</Document>',


c_xml TYPE string VALUE '<?xml',
CG_GT type string value '>',
CG_LT type string value '<'.

DATA:
lt_doc TYPE table_of_strings,
l_string TYPE string,
L_XML TYPE STRING,
L_STR1 TYPE STRING,
L_STR2 TYPE STRING,
L_LINE TYPE STRING,
L_LINE_2 TYPE STRING,
L_STRING_2 TYPE STRING,
L_HEADER TYPE STRING,
ITAB TYPE TABLE OF STRING,
LT_TABLE TYPE TABLE_OF_STRINGS,
LT_TABLE_2 TYPE TABLE_OF_STRINGS,

l_template_wrong type string,


l_template_right type string Value '<Document
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.03">'.

REFRESH et_string.

CONCATENATE
'<Document xmlns="http://www.six-interbank-
clearing.com/de/pain.002.001.03.ch.02.xsd" xmlns:xsi='
'"http://www.w3.org/2001/XMLSchema-instance"'
'xsi:schemaLocation="http://www.six-interbank-
clearing.com/de/pain.002.001.03.ch.02.xsd pain.002.001.03.ch.02.xsd">' into
l_template_wrong.

L_XML = I_XML.

* REPLACE l_template_wrong in L_XML with l_template_right.

SPLIT L_XML AT CG_GT INTO: L_STR1 L_STR2.


CONCATENATE L_STR1 CG_GT INTO L_STR1.
SHIFT L_STR2 UP TO CG_LT.

APPEND L_STR1 TO LT_TABLE.


APPEND L_STR2 TO LT_TABLE.

loop at lt_table into l_line.


case sy-tabix.
when 1.
l_xml = l_line.
when 2.
SPLIT l_line AT CG_GT INTO: L_STR1 L_STR2.
CONCATENATE L_STR1 CG_GT INTO L_STR1.
SHIFT L_STR2 UP TO CG_LT.

APPEND L_STR1 TO LT_TABLE_2.


APPEND L_STR2 TO LT_TABLE_2.

loop at lt_table_2 into l_line_2.


case sy-tabix.
when 1.
CONCATENATE l_xml l_template_right INTO l_xml.
when 2.
CONCATENATE l_xml l_line_2 into l_xml.
endcase.
endloop.
endcase.
endloop.

append l_xml to lt_doc.

et_string[] = lt_doc[].

You might also like