← Prev in month
← Prev in thread
Next in thread →
Next in month →
[ANN] new XML reader and writer
I'm releasing two projects of mine, Ali and Alo. They're at SourceForge.net http://alo.sourceforge.net/ http://ali.sourceforge.net/ Alo is a concise way in ANSI C code to write data in XML format to a file. I got tired of using fprintf. Ali is an XML parser that reads structured XML data into C data structures in a way convenient for your ANSI C code. The result is that your code is smaller and easy to understand. Most other solutions like SAX and require many callback functions. Suppose you want to input address book data like: <person id="1000"> <name>Roger Flores</name> <zipcode>94062</zipcode> <state>CA</state> </person> You could write C code using Ali like this: /* The first function opens the xml document, reads it, and closes it. */ { rootN = ali_open(&doc, "person.xml", true, &data); if (doc.error == ALI_ERROR_NONE) { personN = ali_in(doc, rootN, "^e%f", 0, "person", parse_person); ali_close(&doc); } } /* The second function parses the person element. */ static void parse_person(ali_doc_info *doc, ali_element_ref personN, void * data, bool new_element) { my_person_struct * person = a_new_person(data); if (!doc->error) ali_in(doc, personN, "^a%d", 0, "id", &person->id); if (!doc->error) ali_in(doc, personN, "^e%s", 0, "name", &person->name); if (!doc->error) ali_in(doc, personN, "^e%u", 0, "zipcode", &person->zipcode); if (!doc->error) ali_in(doc, personN, "^e%s", 0, "state", &person->state); } Writing XML using Alo is basically the opposite, and about the same amount of work. Both projects are small. Alo is about 4KB and Ali 7KB compiled. I wrote them so an app of mine could load and save it's dat in XML/RDF and realized I should make them available to others. Ali isn't a conforming XML processor (http://www.w3.org/TR/2004/REC-xml-20040204/#dt-xml-proc) because it's fairly incomplete compared to the XML spec. Alo supports more XML notations than Ali because it's easier to code a writer than a reader. But they both cover my XML data needs. Take a look and try them and let me know what you think. They're both early in development. There are no known bugs, but there are missing features! -Roger Flores mailto:
← Prev in month
← Prev in thread
Next in thread →
Next in month →