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, Swift, 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 only depends on standard ANSI C libraries and it is available under the MIT license.

It includes the command-line utility xmllint and an HTML parser.