Ansicht
Dokumentation

ABENABAP_IXML_LIB_PARSE_ERROR - ABAP IXML LIB PARSE ERROR

ABENABAP_IXML_LIB_PARSE_ERROR - ABAP IXML LIB PARSE ERROR

PERFORM Short Reference   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Fehleranalyse nach dem Parsen

Wenn ein Parser während des Parsens Fehler in den zu parsenden XML-Daten feststellt, gibt seine Methode NUM_ERRORS die Anzahl der Fehler zurück, die mit Hilfe der folgendermaßen erzeugten Objekte analysiert werden können:

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

Der statische Typ der Referenzvariable error ist dann das Interface IF_IXML_PARSE_ERROR. Dem Parameter index kann die Nummer eines Fehlers übergeben werden, wobei die Zählung bei Null beginnt. Bei anderen Werten für index bleibt error initial.

Beispiel

Da die geparsten XML-Daten falsche schließende Tags enthalten, wir das Parsen beim ersten falschen Tag abgebrochen. Der Parser ergänzt noch das erste schließende Tag, schreibt aber keine weiteren Daten in das DOM. In der Methode handle_errors werden die Fehler ausgelesen.

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.






ABAP Short Reference   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 2759 Date: 20240523 Time: 183551     sap01-206 ( 32 ms )