Merge pull request #589 from sbcgua/master

unprettify XML before save
This commit is contained in:
Lars Hvam 2017-02-01 07:09:44 +01:00 committed by GitHub
commit 09c670f0af
3 changed files with 24 additions and 22 deletions

View File

@ -45,8 +45,7 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION.
ls_action-type = ms_key-type.
ls_action-value = ms_key-value.
lv_action = lcl_html_action_utils=>dbkey_encode( ls_action ).
lv_data = lcl_xml_pretty=>print( lv_data ).
lv_data = lo_highlighter->process_line( lv_data ).
lv_data = lo_highlighter->process_line( lcl_xml_pretty=>print( lv_data ) ).
CREATE OBJECT ro_html.
@ -107,9 +106,7 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
iv_type = ms_key-type
iv_value = ms_key-value ).
lv_data = lcl_xml_pretty=>print( lv_data ).
lv_data = escape( val = lv_data
lv_data = escape( val = lcl_xml_pretty=>print( lv_data )
format = cl_abap_format=>e_html_attr ).
CREATE OBJECT ro_html.

View File

@ -81,8 +81,9 @@ CLASS lcl_persistence_db DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
RAISING lcx_exception.
PRIVATE SECTION.
METHODS: validate_xml
IMPORTING iv_xml TYPE string
METHODS: validate_and_unprettify_xml
IMPORTING iv_xml TYPE string
RETURNING VALUE(rv_xml) TYPE string
RAISING lcx_exception.
ENDCLASS.
@ -832,29 +833,32 @@ CLASS lcl_persistence_db IMPLEMENTATION.
ENDMETHOD.
METHOD validate_xml.
METHOD validate_and_unprettify_xml.
lcl_xml_pretty=>print(
rv_xml = lcl_xml_pretty=>print(
iv_xml = iv_xml
iv_unpretty = abap_true
iv_ignore_errors = abap_false ).
ENDMETHOD.
ENDMETHOD. " validate_and_unprettify_xml
METHOD update.
validate_xml( iv_data ).
DATA lv_data LIKE iv_data.
lv_data = validate_and_unprettify_xml( iv_data ).
lock( iv_type = iv_type
iv_value = iv_value ).
UPDATE (c_tabname) SET data_str = iv_data
WHERE type = iv_type
AND value = iv_value.
UPDATE (c_tabname) SET data_str = lv_data
WHERE type = iv_type
AND value = iv_value.
IF sy-subrc <> 0.
lcx_exception=>raise( 'DB update failed' ).
ENDIF.
ENDMETHOD.
ENDMETHOD. "update
METHOD modify.

View File

@ -374,6 +374,7 @@ CLASS lcl_xml_pretty DEFINITION FINAL.
CLASS-METHODS: print
IMPORTING iv_xml TYPE string
iv_ignore_errors TYPE abap_bool DEFAULT abap_true
iv_unpretty TYPE abap_bool DEFAULT abap_false
RETURNING VALUE(rv_xml) TYPE string
RAISING lcx_exception.
@ -394,14 +395,14 @@ CLASS lcl_xml_pretty IMPLEMENTATION.
ASSERT NOT iv_xml IS INITIAL.
li_ixml = cl_ixml=>create( ).
li_ixml = cl_ixml=>create( ).
li_xml_doc = li_ixml->create_document( ).
li_stream_factory = li_ixml->create_stream_factory( ).
li_istream = li_stream_factory->create_istream_string( iv_xml ).
li_parser = li_ixml->create_parser( stream_factory = li_stream_factory
istream = li_istream
document = li_xml_doc ).
li_istream = li_stream_factory->create_istream_string( iv_xml ).
li_parser = li_ixml->create_parser( stream_factory = li_stream_factory
istream = li_istream
document = li_xml_doc ).
li_parser->set_normalizing( abap_true ).
IF li_parser->parse( ) <> 0.
IF iv_ignore_errors = abap_true.
@ -414,12 +415,12 @@ CLASS lcl_xml_pretty IMPLEMENTATION.
li_istream->close( ).
li_ostream = li_stream_factory->create_ostream_cstring( rv_xml ).
li_ostream = li_stream_factory->create_ostream_cstring( rv_xml ).
li_renderer = li_ixml->create_renderer( ostream = li_ostream
document = li_xml_doc ).
li_renderer->set_normalizing( abap_true ).
li_renderer->set_normalizing( boolc( iv_unpretty = abap_false ) ).
li_renderer->render( ).