Libxml Tutorial

John Fleck

Revision History
Revision 1June 4, 2002
Initial draft
Revision 2June 12, 2002
retrieving attribute value added
Revision 3Aug. 31, 2002
freeing memory fix
Revision 4Nov. 10, 2002
encoding discussion added
Revision 5Dec. 15, 2002
more memory freeing changes
Revision 6Jan. 26. 2003
add index
Revision 7April 25, 2003
add compilation appendix
Revision 8July 24, 2003
add XPath example
Revision 9Feb. 14, 2004
Fix bug in XPath example
Revision 7Aug. 24, 2004
Fix another bug in XPath example

Table of Contents

Introduction
Data Types
Parsing the file
Retrieving Element Content
Using XPath to Retrieve Element Content
Writing element content
Writing Attribute
Retrieving Attributes
Encoding Conversion
A. Compilation
B. Sample Document
C. Code for Keyword Example
D. Code for XPath Example
E. Code for Add Keyword Example
F. Code for Add Attribute Example
G. Code for Retrieving Attribute Value Example
H. Code for Encoding Conversion Example
I. Acknowledgements

Abstract

Libxml is a freely licensed C language library for handling XML, portable across a large number of platforms. This tutorial provides examples of its basic functions.

Introduction

Libxml is a C language library implementing functions for reading, creating and manipulating XML data. This tutorial provides example code and explanations of its basic functionality.

Libxml and more details about its use are available on the project home page. Included there is complete API documentation. This tutorial is not meant to substitute for that complete documentation, but to illustrate the functions needed to use the library to perform basic operations.

The tutorial is based on a simple XML application I use for articles I write. The format includes metadata and the body of the article.

The example code in this tutorial demonstrates how to:

  • Parse the document.

  • Extract the text within a specified element.

  • Add an element and its content.

  • Add an attribute.

  • Extract the value of an attribute.

Full code for the examples is included in the appendices.