X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=utils%2Fguest_creator%2Fezxml.txt;fp=utils%2Fguest_creator%2Fezxml.txt;h=1dcd5ad99f9155a1e3e546fd875385f438e33e37;hp=0000000000000000000000000000000000000000;hb=3cf3fcc643f04aaa516da88a8ef3726cddfbbc0b;hpb=45050b17f19868689ef5437ced5810044dd57768 diff --git a/utils/guest_creator/ezxml.txt b/utils/guest_creator/ezxml.txt new file mode 100644 index 0000000..1dcd5ad --- /dev/null +++ b/utils/guest_creator/ezxml.txt @@ -0,0 +1,84 @@ +ezXML - XML Parsing C Library +version 0.8.5 + +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). The latest verions is available here: +http://prdownloads.sf.net/ezxml/ezxml-0.8.6.tar.gz?download + +Example Usage + +Given the following example XML document: + + + + + + Kimi Raikkonen + 112 + + + Juan Pablo Montoya + 60 + + + + +This code snippet prints out a list of drivers, which team they drive for, +and how many championship points they have: + +ezxml_t f1 = ezxml_parse_file("formula1.xml"), team, driver; +const char *teamname; + +for (team = ezxml_child(f1, "team"); team; team = team->next) { + teamname = ezxml_attr(team, "name"); + for (driver = ezxml_child(team, "driver"); driver; driver = driver->next) { + printf("%s, %s: %s\n", ezxml_child(driver, "name")->txt, teamname, + ezxml_child(driver, "points")->txt); + } +} +ezxml_free(f1); + +Alternately, the following would print out the name of the second driver on the +first team: + +ezxml_t f1 = ezxml_parse_file("formula1.xml"); + +printf("%s\n", ezxml_get(f1, "team", 0, "driver", 1, "name", -1)->txt); +ezxml_free(f1); + +The -1 indicates the end of the argument list. That's pretty much all +there is to it. Complete API documentation can be found in ezxml.h. + +Known Limitations + +- ezXML is not a validating parser + +- Loads the entire XML document into memory at once and does not allow for + documents to be passed in a chunk at a time. Large XML files can still be + handled though through ezxml_parse_file() and ezxml_parse_fd(), which use mmap + to map the file to a virtual address space and rely on the virtual memory + system to page in data as needed. + +- Does not currently recognize all possible well-formedness errors. It should + correctly handle all well-formed XML documents and will either ignore or halt + XML processing on well-formedness errors. More well-formedness checking will + be added in subsiquent releases. + +- In making the character content of tags easy to access, there is no way + provided to keep track of the location of sub tags relative to the character + data. Example: + + line one
+ line two
+ + The character content of the doc tag is reported as "line one\nline two", and +
is reported as a sub tag, but the location of
within the + character data is not. The function ezxml_toxml() will convert an ezXML + structure back to XML with sub tag locations intact. + +Licensing + +ezXML was written by Aaron Voisine and is distributed under +the terms of the MIT license, described in license.txt.