Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
💻 COBOL

COBOL XML PARSE

Advanced 🕑 18 min read 👁 0 views

COBOL XML PARSE

XML PARSE processes XML documents using an event-driven model.

Syntax

```cobol XML PARSE xml-document PROCESSING PROCEDURE IS procedure-name [ON EXCEPTION imperative] [NOT ON EXCEPTION imperative] END-XML. ```

Processing Procedure

Called for each XML event with special registers:

  • XML-EVENT: Current event type
  • XML-TEXT: Content text
  • XML-NTEXT: National content
  • XML-CODE: Error code

XML Events

  • START-OF-DOCUMENT
  • END-OF-DOCUMENT
  • START-OF-ELEMENT
  • END-OF-ELEMENT
  • ATTRIBUTE-NAME
  • ATTRIBUTE-CHARACTERS
  • CONTENT-CHARACTERS
  • EXCEPTION

Processing Pattern

```cobol EVALUATE XML-EVENT WHEN 'START-OF-ELEMENT' MOVE XML-TEXT TO WS-ELEMENT-NAME WHEN 'CONTENT-CHARACTERS' MOVE XML-TEXT TO WS-CONTENT END-EVALUATE. ```

Code Example

       IDENTIFICATION DIVISION.
       PROGRAM-ID. XML-PARSE-DEMO.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-XML PIC X(200) VALUE
           '<emp><id>E001</id><name>JOHN</name></emp>'.
       01 WS-ELEMENT PIC X(20).
       01 WS-CONTENT PIC X(50).
       PROCEDURE DIVISION.
           XML PARSE WS-XML
               PROCESSING PROCEDURE XML-HANDLER
           END-XML
           STOP RUN.
       XML-HANDLER.
           EVALUATE XML-EVENT
               WHEN 'START-OF-ELEMENT'
                   MOVE XML-TEXT TO WS-ELEMENT
               WHEN 'CONTENT-CHARACTERS'
                   MOVE XML-TEXT TO WS-CONTENT
                   DISPLAY WS-ELEMENT ': ' WS-CONTENT
           END-EVALUATE.