Xml Light
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
For easily parsing an Xml data source into an xml data structure, you can use theses functions. But if you want advanced parsing usage, please look at the XmlParser module. All the parsing functions can raise some exceptions, see the Exceptions section for more informations.
val parse_in : Pervasives.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
Several exceptions can be raised when parsing an Xml document :
If the Xml document is containing a DTD, then some other exceptions can be raised, see the module Dtd for more informations.
type error_msg
= Types.error_msg
=
| UnterminatedComment |
| UnterminatedString |
| UnterminatedEntity |
| IdentExpected |
| CloseExpected |
| NodeExpected |
| AttributeNameExpected |
| AttributeValueExpected |
| EndOfTagExpected of string |
| EOFExpected |
exception
Error of error
val range : error_pos ‑> int * int
Get the relative character range (in current line) the error occured at.
exception
Not_element of xml
exception
Not_pcdata of xml
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
children xdata
returns the children list of the xml node
Raise Xml.Not_element if the xml is not an element
iter f xdata
calls f on all children of the xml node.
Raise Xml.Not_element if the xml is not an element
map f xdata
is equivalent to List.map f (Xml.children xdata)
Raise Xml.Not_element if the xml is not an element
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
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