Parsing XML documents
To parse XML documents, use the XML PARSE
statement,
specifying the XML document that is to be parsed and the processing
procedure for handling XML events that occur during parsing, as shown
in the following code fragment.
About this task
XML PARSE xml-document
PROCESSING PROCEDURE xml-event-handler
ON EXCEPTION
DISPLAY 'XML document error ' XML-CODE
STOP RUN
NOT ON EXCEPTION
DISPLAY 'XML document was successfully parsed.'
END-XML
XML PARSE
statement, you first identify the parse data item (xml-document
in
the example above) that contains the XML document character stream.
In the DATA DIVISION
, define the parse
data item as an elementary data item of category national or as a
national group item if the encoding of the document is Unicode
UTF-16; otherwise, define the parse data item as an elementary alphanumeric
data item or an alphanumeric group item: - If the parse data item is national, the XML document must be encoded in UTF-16 in little-endian format.
- If the parse data item is alphanumeric, its content must be encoded in one of the supported code pages described in the related reference about the encoding of XML documents.
Next, specify the name of the processing procedure
(xml-event-handler
in the example above) that is
to handle the XML events that occur during parsing of the document.
In addition, you can specify either or both of the following optional phrases (as shown in the fragment above) to indicate the action to be taken after parsing finishes:
ON EXCEPTION
, to receive control if an unhandled exception occurs during parsingNOT ON EXCEPTION
, to receive control otherwise
You can end the XML
PARSE
statement with
the explicit scope terminator END-XML
. Use END-XML
to
nest an XML PARSE
statement that uses the ON
EXCEPTION
or NOT ON EXCEPTION
phrase in
a conditional statement.
The parser passes control to the processing procedure for each XML event. Control returns to the parser at the end of the processing procedure. This exchange of control between the XML parser and the processing procedure continues until one of the following events occurs:
- The entire
XML document was parsed, as indicated
by the
END-OF-DOCUMENT
event. - The parser detects an error in
the document and
signals an
EXCEPTION
event, and the processing procedure does not reset the special registerXML-CODE
to zero before returning to the parser. - The parsing process is terminated deliberately by the your code
in the processing procedure that sets the XML-CODE special register to
-1
before it returns to the parser.
Specifying the code page for character data
Writing procedures to process XML
Parsing XML documents encoded in UTF-8
The encoding of XML documents
XML PARSE exceptions
XML PARSE statement (COBOL for Linux® on x86 Language Reference)