Насколько я знаю, SPLIT
удаляет разделитель из результатов, и кажется, что вы не можете его изменить.
Но вы можете создать свой собственный разделитель, сначала заменив тег <br/>
с <br/>
плюс произвольная строка, которая вряд ли когда-либо появится в вашем источнике HTML, а затем разделит HTML, используя вместо этого эту произвольную строку в качестве разделителя.
types:
begin of t_result,
segment(2000) type c,
end of t_result.
DATA:
source type string,
separator type string,
brtag type string,
repl type string,
result_tab type standard table of t_result,
result_row TYPE t_result.
brtag = '<br/>'.
separator = '|***SEP***|'.
concatenate brtag separator into repl.
source = '<HTML><BODY><p>some text<br/>some more text</p></BODY></HTML>'.
replace all occurrences of brtag in source with repl.
split source at separator into table result_tab.
LOOP AT result_tab INTO result_row.
WRITE:
result_row-segment.
ENDLOOP.
Вывод этого примера отчета:
<HTML><BODY><p>some text<br/>
some more text</p></BODY></HTML>
Предостережение этого решения заключается в том, что ваш пользовательский разделитель, если он не выбран с осторожностью, может появиться в вашем исходном HTML-коде сам по себе. Поэтому я бы выбрал произвольную строку со специальным символом или двумя, которые будут закодированы в HTML (например, умляуты) и, следовательно, не появятся в вашем источнике.