View Source exml_stream (exml v3.4.1)

XML stream parser

Summary

Types

#parser{} record.

Parser options

#xmlstreamstart{} record.
#xmlstreamend{} record.

Functions

Free a parser

Creates a new parser
Makes a parser parse input
Resets the parser's buffers

Types

-type element() :: exml_nif:stream_element().
One of start/0, stop/0 or exml:element().
-type parser() :: #parser{}.
#parser{} record.
-type parser_opt() :: {infinite_stream, boolean()} | {max_element_size, non_neg_integer()}.

Parser options

  • infinite_stream: No distinct start/0 or stop/0, only #xmlel{} will be returned.
  • max_element_size: Specifies maximum byte size of any parsed XML element. The only exception is the "stream start" element, for which only the size of the opening tag is limited.
-type start() :: #xmlstreamstart{}.
#xmlstreamstart{} record.
-type stop() :: #xmlstreamend{}.
#xmlstreamend{} record.

Functions

-spec free_parser(parser()) -> ok.

Free a parser

Kept for backwards-compatibility, it is a no-op.
-spec new_parser() -> {ok, parser()} | {error, any()}.

See also: new_parser/1.

-spec new_parser([parser_opt()]) -> {ok, parser()} | {error, any()}.
Creates a new parser
-spec parse(parser(), binary()) -> {ok, parser(), [exml_stream:element()]} | {error, Reason :: any()}.
Makes a parser parse input
-spec reset_parser(parser()) -> {ok, parser()}.
Resets the parser's buffers