Ansicht
Dokumentation

ABENABAP_IXML_LIB_PARSE_ERROR - ABAP IXML LIB PARSE ERROR

ABENABAP_IXML_LIB_PARSE_ERROR - ABAP IXML LIB PARSE ERROR

CPI1466 during Backup   BAL Application Log Documentation  
This documentation is copyright by SAP AG.
SAP E-Book

- Troubleshooting After Parsing

If a parser detects errors in the XML data to be parsed, its method NUM_ERRORS returns the number of errors. These can be analyzed using the objects created as follows:

DATA(error) = parser->get_error( index = ... ).

The static type of the reference variable error is then the interface IF_IXML_PARSE_ERROR. The number of the error can be passed to the parameter index. Counting begins at zero. If index has any other values, error remains initial.

Example

The parsed XML data contains tags that are not closed correctly, which means that parsing is terminated after the first incorrect tag. The parser adds the first closing tag but does not write any further data to DOM. The method handle_errors reads the errors.

DATA(ixml)           = cl_ixml=>create( ).
DATA(stream_factory) = ixml->create_stream_factory( ).
DATA(istream)        = stream_factory->create_istream_string(
  `text1>aaa/text>text2>bbb/text>`  ).
DATA(document)       = ixml->create_document( ).
DATA(parser) = ixml->create_parser(
                         stream_factory = stream_factory
                         istream        = istream
                         document       = document ).

IF parser->parse( ) <> ixml_mr_parser_ok.
  handle_errors( ).
  RETURN.
ENDIF.

...

METHOD handle_errors.
  DO parser->num_errors( ) TIMES.
    DATA(error)  = parser->get_error( index = sy-index - 1 ).
    DATA(line)   = error->get_line( ).
    DATA(column) = error->get_column( ).
    DATA(reason) = error->get_reason( ).
    ...
  ENDDO.
ENDMETHOD.






CL_GUI_FRONTEND_SERVICES - Frontend Services   CL_GUI_FRONTEND_SERVICES - Frontend Services  
This documentation is copyright by SAP AG.

Length: 2612 Date: 20240427 Time: 064826     sap01-206 ( 29 ms )