How can libxml2 be used to parse data from XML?

libxml2 provides various examples showing basic usage.

http://xmlsoft.org/examples/index.html

For your stated goals, tree1.c would probably be most relevant.

tree1.c: Navigates a tree to print element names

Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.

http://xmlsoft.org/examples/tree1.c

Once you have an xmlNode struct for an element, the "properties" member is a linked list of attributes. Each xmlAttr object has a "name" and "children" object (which are the name/value for that attribute, respectively), and a "next" member which points to the next attribute (or null for the last one).

http://xmlsoft.org/html/libxml-tree.html#xmlNode

http://xmlsoft.org/html/libxml-tree.html#xmlAttr


I believe you first need to create a Parse tree. Maybe this article can help, look through the section which says How to Parse a Tree with Libxml2.


I found these two resources helpful when I was learning to use libxml2 to build a rss feed parser.

Tutorial with SAX interface

Tutorial using the DOM Tree (code example for getting an attribute value included)