module Xml:sig
..end
Xml Light is a minimal Xml parser & printer for OCaml. It provide few functions to parse a basic Xml document into an OCaml data structure and to print back the data structures to an Xml document.
Xml Light has also support for DTD (Document Type Definition).
(c)Copyright 2002-2003 Nicolas Cannasse
type
xml =
| |
Element of |
| |
PCData of |
Element (tag-name, attributes, children)
or PCData text
XmlParser
module.
All the parsing functions can raise some exceptions, see the
Exceptions section for more informations.val parse_file : string -> xml
val parse_in : Pervasives.in_channel -> xml
val parse_string : string -> xml
Xml.Error
is raised when an xml parsing error occurs. the
Xml.error_msg
tells you which error occured during parsing
and the Xml.error_pos
can be used to retreive the document
location where the error occured at.Xml.File_not_found
is raised when and error occured while
opening a file with the Xml.parse_file
function or when a
DTD file declared by the Xml document is not found (see the
XmlParser
module for more informations on how to handle the
DTD file loading).Dtd
for more informations.type
error_pos
type
error_msg =
| |
UnterminatedComment |
| |
UnterminatedString |
| |
UnterminatedEntity |
| |
IdentExpected |
| |
CloseExpected |
| |
NodeExpected |
| |
AttributeNameExpected |
| |
AttributeValueExpected |
| |
EndOfTagExpected of |
| |
EOFExpected |
typeerror =
error_msg * error_pos
exception Error of error
exception File_not_found of string
val error : error -> string
val error_msg : error_msg -> string
val line : error_pos -> int
val range : error_pos -> int * int
val abs_range : error_pos -> int * int
exception Not_element of xml
exception Not_pcdata of xml
exception No_attribute of string
val tag : xml -> string
val pcdata : xml -> string
pcdata xdata
returns the PCData value of the xml node.
Raise Xml.Not_pcdata
if the xml is not a PCDataval attribs : xml -> (string * string) list
attribs xdata
returns the attribute list of the xml node.
First string if the attribute name, second string is attribute value.
Raise Xml.Not_element
if the xml is not an elementval attrib : xml -> string -> string
attrib xdata "href"
returns the value of the "href"
attribute of the xml node (attribute matching is case-insensitive).
Raise Xml.No_attribute
if the attribute does not exists in the node's
attribute list
Raise Xml.Not_element
if the xml is not an elementval children : xml -> xml list
children xdata
returns the children list of the xml node
Raise Xml.Not_element
if the xml is not an elementval iter : (xml -> unit) -> xml -> unit
iter f xdata
calls f on all children of the xml node.
Raise Xml.Not_element
if the xml is not an elementval map : (xml -> 'a) -> xml -> 'a list
map f xdata
is equivalent to List.map f (Xml.children xdata)
Raise Xml.Not_element
if the xml is not an elementval fold : ('a -> xml -> 'a) -> 'a -> xml -> 'a
fold f init xdata
is equivalent to
List.fold_left f init (Xml.children xdata)
Raise Xml.Not_element
if the xml is not an elementval to_string : xml -> string
val to_string_fmt : xml -> string