xml_persistent
returns an entity object ('XPER entity') created from given XML document
xml_persistent
(in document varchar,
[in parser_mode integer],
[in base_uri varchar],
[in content_encoding varchar],
[in content_language varchar],
[in dtd_validator_config varchar]);
Description
This parses the argument, which is expected to be a well formed XML
fragment and returns a parse tree as a special object with underlying disk structure, named
"persistent XML" or "XPER"
While the result of xml_tree()
is a memory-resident array of vectors, the XPER object consumes only a little
amount of memory, and almost all data is disk-resident.
This function is equivalent to xper_doc, and the only
difference is in the order of arguments; xper_doc() has the same order of arguments as
xml_tree.
Parameters
document –
well formed XML or HTML document
parser_mode –
0, 1 or 2; 0 - XML parser mode, 1 - HTML parser mode, 2 - 'dirty
HTML' mode (with quiet recovery after any syntax error)
base_uri –
in HTML parser mode change all absolute references to relative from
given base_uri (http://<host>:<port>/<path>)
content_encoding –
string with content encoding type of <document>; valid are
'ASCII', 'ISO', 'UTF8', 'ISO8859-1', 'LATIN-1' etc., defaults are 'UTF-8'
for XML mode and 'LATIN-1' for HTML mode
content_language –
string with language tag of content of <document>; valid
names are listed in IETF RFC 1766, default is 'x-any' (it means 'mix of
words from various human languages)
Return Types
Parse tree as a structure of nested heterogeneous vectors.
Examples
XML_Persistent
declare tree any;
tree := xml_persistent (file_to_string ('doc.html'), 1,
'http://localhost.localdomain/', 'ISO');
...
tree := xml_persistent (file_to_string ('doc.xml'));