"Fossies" - the Fresh Open Source Software Archive

Member "openvalidator-2.7.1/libxml2-2.6.28/doc/tutorial/ar01s03.html" (31 Oct 2010, 5718 Bytes) of package /linux/www/openvalidator_2.7.1.tar.gz:

Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. Alternatively you can here view or download the uninterpreted raw source code. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.

Parsing the file

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

        1 xmlDocPtr doc;
	2 xmlNodePtr cur;

	3 doc = xmlParseFile(docname);
	4 if (doc == NULL ) {
		fprintf(stderr,"Document not parsed successfully. \n");

	5 cur = xmlDocGetRootElement(doc);
	6 if (cur == NULL) {
		fprintf(stderr,"empty document\n");
	7 if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
		fprintf(stderr,"document of the wrong type, root node != story");



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.


One common example of an error at this point is improper handling of encoding. The XML standard requires documents stored with an encoding other than UTF-8 or UTF-16 to contain an explicit declaration of their encoding. If the declaration is there, libxml will automatically perform the necessary conversion to UTF-8 for you. More information on XML's encoding requirements is contained in the standard.


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.