The initialization and parsing of documents has changed in the Unified C API.
Example 1-1 Initializing and Parsing Sequence for the Pre-Unified C API, One Document at a Time
The following pseudo-code demonstrates how to initialize and parse documents, one at a time, using the old C APIs. Contrast this with Example 1-2.
#include <oraxml.h> uword err; xmlctx *ctx = xmlinit(&err, options); for (;;) { err = xmlparse(ctx, URI, options); ... /* DOM operations */ ... /* recycle memory from document */ xmlclean(ctx); } xmlterm(ctx);
Example 1-2 Initializing and Parsing Sequence for the Unified C API, One Document at a Time
The following pseudo-code demonstrates how to initialize and parse documents, one at a time, using the new C APIs. Contrast this with Example 1-1.
#include <xml.h> xmlerr err; xmldocnode *doc; xmlctx *xctx = XmlCreate(&err, options, NULL); for (;;) { doc = XmlLoadDom(xctx, &err, "URI", URI, NULL); ... /* DOM operations */ ... XmlFreeDocument(xctx, doc); } XmlDestroy(xctx);
Example 1-3 Initializing and Parsing Sequence for the Pre-Unified C API, Multiple Documents and Simultaneous DOM Access
The following pseudo-code demonstrates how to initialize and parse multiple documents with simultaneous DOM access using the old C APIs. Contrast this with Example 1-4.
xmlctx *ctx1 = xmlinitenc(&err, options); xmlctx *ctx2 = xmlinitenc(&err, options); err = xmlparse(ctx1, URI_1, options); err = xmlparse(ctx2, URI_2, options); ... /* DOM operations for both documents */ ... xmlterm(ctx1); xmlterm(ctx2);
Example 1-4 Initializing and Parsing Sequence for the Unified C API, Multiple Documents and Simultaneous DOM Access
The following pseudo-code example demonstrates how to initialize and parse multiple documents with simultaneous DOM access using the new C APIs. Contrast this with Example 1-3.
xmldocnode *doc1; xmldocnode *doc2; xmlctx *xctx = XmlCreate(&err, options, NULL); doc1 = XmlLoadDom(xctx, &err, "URI", URI_1, NULL); doc2 = XmlLoadDom(xctx, &err, "URI", URI_2, NULL); ... /* DOM operations for both documents*/ ... XmlFreeDocument(xctx, doc1); XmlFreeDocument(xctx, doc2); ... XmlDestroy(xctx);