Parsing the file requires only the name of the file and a single function call, plus error checking. Full code: Appendix C, Code for Keyword Example
xmlDocPtr doc; xmlNodePtr cur; doc = xmlParseFile(docname); if (doc == NULL ) { fprintf(stderr,"Document not parsed successfully. \n"); return; } cur = xmlDocGetRootElement(doc); if (cur == NULL) { fprintf(stderr,"empty document\n"); xmlFreeDoc(doc); return; } if (xmlStrcmp(cur->name, (const xmlChar *) "story")) { fprintf(stderr,"document of the wrong type, root node != story"); xmlFreeDoc(doc); return; }
Declare the pointer that will point to your parsed document. | |||||
Declare a node pointer (you'll need this in order to interact with individual nodes). | |||||
Check to see that the document was successfully parsed. If it was not, libxml will at this point register an error and stop.
| |||||
Retrieve the document's root element. | |||||
Check to make sure the document actually contains something. | |||||
In our case, we need to make sure the document is the right type. "story" is the root type of the documents used in this tutorial. |