Libxml2
libxml2 is a software library for parsing XML documents. It is also the basis for the libxslt library which processes XSLT-1.0 stylesheets.Description
Written in the C programming language, libxml2 provides bindings to C++, Ch, XSH, C#, Python, Kylix/Delphi and other Pascals, Ruby, Perl, Common Lisp, and PHP. It was originally developed for the GNOME project, but can be used outside it. libxml2's code is highly portable, since it depends on standard ANSI C libraries only, and it is released under the MIT license. This library was written by Daniel Veillard and receives active feedback from its users.
It includes the command-line utility xmllint and an HTML parser.