xtree_doc — returns an entity object created from an XML document


xtree_doc ( in document varchar ,
  in parser_mode integer ,
  in base_uri varchar ,
  in content_encoding varchar ,
  in content_language varchar ,
  in dtd_validator_config varchar );


This parses the argument, which is expected to be a well formed XML fragment and returns a parse tree as a special memory-resident object. While xper_doc creates some disk-resident data structure, xtree_doc() will work faster but it may require more memory. You may wish to use xtree_doc for small documents (e.g. less than 5 megabytes and xper_doc for larger documents.



well formed XML or HTML document


0, 1 or 2; 0 - XML parser mode, 1 - HTML parser mode, 2 - 'dirty HTML' mode (with quiet recovery after any syntax error)


in HTML parser mode change all absolute references to relative from given base_uri (http://<host>:<port>/<path>)


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.


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')


configuration string for DTD validator, default is empty string meaning that DTD validator should be fully disabled. See Configuration Options of the DTD Validator for details.

Return Types

XML entity with underlying parse tree of source document; the tree will be a memory-resident structure of nested heterogeneous vectors.


Example 24.537. xtree_doc

declare tree any;

tree := xtree_doc (file_to_string ('doc.html'), 1,
		'http://localhost.localdomain/', 'ISO');
tree := xtree_doc (file_to_string ('doc.xml'));