<libroxml  version="3.0.2" />
contact: tristan.lelong@libroxml.net
libroxml homepage


This library is minimum, easy-to-use, C implementation for XML file parsing It includes:

The stripped binary is about 50K. The public API defines less than 30 functions to do all you need, making it very easy to start with. For bug reporting, you can check the github dedicated project: https://github.com/blunderer/libroxml

Libroxml is distributed under the terms of the GNU Lesser General Public License v2.1 with a static linking exception (see License.txt).



The source code is available from github project GIT repository:

$> git clone https://github.com/blunderer/libroxml.git 

You can download source packages:


<why libroxml>

Because XML parsing is always hard to reinvent, and because very often XML lib are too big to fit with very little application. Libroxml target mainly embedded software and environment, but you can use it whenever you need to deal with XML since libroxml is ligth and fast. libroxml is now provided in buildroot (http://buildroot.uclibc.org).

libroxml allow you to easily:

libroxml work with both strict XML documents but also with XML like formatted documents (without any <?XML?> definition...)
libroxml may behave strangely when dealing with node names or attribute values bigger than 512 bytes. For those who really need it, they can increase this limit by modifying the ROXML_BASE_LEN define in roxml_defines.h.
libroxml do not handle DOCTYPE nodes. However, it will nicely ignore them during parsing and will still return the XML tree.
libroxml is not thread safe for all write operations (roxml_set_ns, roxml_add_node, roxml_del_node) therefore, those functions must be granted exclusive access to the XML tree when called. On the other hand, all other functions can be safely called simultaneously.

</why libroxml>

<how does it work>

You can refer to public API for documentation on all functions

there are several groups of functions in public API:

</how does it work>

<building libroxml>

libroxml is a cross-platform library. It is developed on Linux OS, but is pretty much standalone and only depends of pthread mutexes in case it is compiled with thread safety enabled. This should make the library work on any platform that is POSIX compliant. Libroxml also works on Microsoft, the pthread API being converted to CriticalSection using basic macros.

Libroxml build system relies on autotool to guaranty the best compatibility on all machines. A CMakeList.txt is also provided in order to ease the native build on Windows machines, but this one provides less options for tuning the behavior of library.

Libroxml can be tuned to make it full-featured or minimalistic, in order to fit most usage:

Development options

Feature options

Fine tuning for small systems

</building libroxml>