Module Xml_light.Xml

Xml Data Structure
type xml = Types.xml =
| Element of string * (string * string) list * xml list
| PCData of string

An Xml node is either Element (tag-name, attributes, children) or PCData text

Xml Parsing
val parse_file : string -> xml

Parse the named file into an Xml data structure.

val parse_in : Stdlib.in_channel -> xml

Read the content of the in_channel and parse it into an Xml data structure.

val parse_string : string -> xml

Parse the string containing an Xml document into an Xml data structure.

val parse_string_with : XmlParser.t -> string -> xml
Xml Exceptions
type error_pos
type error_msg = Types.error_msg =
| UnterminatedComment
| UnterminatedString
| UnterminatedEntity
| IdentExpected
| CloseExpected
| NodeExpected
| AttributeNameExpected
| AttributeValueExpected
| EndOfTagExpected of string
| EOFExpected
type error = error_msg * error_pos
exception Error of error
exception File_not_found of string
val error : error -> string

Get a full error message from an Xml error.

val error_msg : error_msg -> string

Get the Xml error message as a string.

val line : error_pos -> int

Get the line the error occured at.

val range : error_pos -> int * int

Get the relative character range (in current line) the error occured at.

val abs_range : error_pos -> int * int

Get the absolute character range the error occured at.

Xml Functions
exception Not_element of xml
exception Not_pcdata of xml
exception No_attribute of string
val tag : xml -> string

tag xdata returns the tag value of the xml node. Raise Xml.Not_element if the xml is not an element

val pcdata : xml -> string

pcdata xdata returns the PCData value of the xml node. Raise Xml.Not_pcdata if the xml is not a PCData

val 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 element

val 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 element

val children : xml -> xml list

children xdata returns the children list of the xml node Raise Xml.Not_element if the xml is not an element

val 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 element

val 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 element

val 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 element

Xml Printing
val to_string : xml -> string

Print the xml data structure into a compact xml string (without any user-readable formating ).

val to_string_fmt : xml -> string

Print the xml data structure into an user-readable string with tabs and lines break between different nodes.

val to_human_string : xml -> string
module type X = sig ... end
module Make : functor (X : X) -> sig ... end