ezXML is a C library for parsing XML documents inspired by simpleXML for PHP. As the name implies, it's easy to use. It's ideal for parsing XML configuration files or REST Web service responses. It's also fast and lightweight (less than 20k compiled).
| Tags | Software Development Libraries Text Processing Markup XML |
|---|---|
| Licenses | MIT/X |
| Operating Systems | POSIX |
| Implementation | C |
Recent releases


Changes: A bug was fixed in ezxml_add_child() that could occur when adding tags out of order. For consistency, ezxml_set_attr() now returns the tag given. ezxml_move() was added, along with its supporting functions ezxml_cut() and ezxml_insert(). A bug was fixed where parsing an empty file could cause a segfault.


Changes: ezxml_toxml() was fixed to not output siblings of the tag being converted. A segfault was fixed when ezxml_set_attr() was used on a new root tag. The ezxml_name() function macro was added. All external functions now handle NULL ezxml_t structs without segfaulting.


Changes: This release is fixed to compile under Windows when the NOMMAP make option is set. It also fixes a bug where ezxml_toxml() could segfault if a tag offset is out of bounds. ezxml_add_child() now works properly when tags are added out of order. Error messages have been improved and now include line numbers. A memory leak when entity references are shorter than their replacement text has been fixed. New function macros ezxml_new_d(), ezxml_add_child_d(), ezxml_set_txt_d() and ezxml_set_attr_d() have been added as wrappers that strdup() their arguments.


Changes: This release fixes a UTF-16 decoding bug affecting larger Unicode values. It adds internal DTD processing for entity declarations and default attributes, and now correctly normalizes attribute values in compliance with the XML 1.0 spec. It adds a check for correct tag nesting. ezxml_toxml() now generates canonical XML (apart from the namespace stuff).


Changes: This release fixes a compiler warning about lvalue type casting. The ezxml_get() argument list can now be terminated by an empty string tag name. A NOMMAP make option was added for systems without POSIX memory mapping. Support for UTF-16 was added. A bug in ezxml_toxml() where UTF-8 sequences were being ampersand encoded has been fixed. The ezxml_new(), ezxml_add_child(), ezxml_set_txt(), ezxml_set_attr(), and ezxml_remove() functions were added to facilitate creating and modifying XML.