Help language development. Donate to The Perl Foundation

LibXML zef:dwarring last updated on 2022-11-10


Actions Status

[Raku LibXML Project] / [LibXML Module] /


LibXML - Raku bindings to the libxml2 native library


use LibXML;
use LibXML::Document;
my LibXML::Document $doc .=  parse: :string('<Hello/>');
$doc.root.nodeValue = 'World!';
say $doc.Str;
# <?xml version="1.0" encoding="UTF-8"?>
# <Hello>World!</Hello>
say $doc<Hello>;
# <Hello>World!</Hello>

my Version $library-version = LibXML.version;
my Version $module-version = LibXML.^ver;


This module is an interface to libxml2, providing XML and HTML parsers with DOM, SAX and XMLReader interfaces, a large subset of DOM Layer 3 interface and a XML::XPath-like interface to XPath API of libxml2.

For further information, please check the following documentation:

DOM Objects

The nodes in the Document Object Model (DOM) are represented by the following classes (most of which "inherit" from LibXML::Node):

See also LibXML::DOM, which summarizes DOM classes and methods.

Container/Mapping classes


SAX Parser

XPath and Searching




This module may requires the libxml2 library to be installed. Please follow the instructions below based on your platform:

Debian/Ubuntu Linux

sudo apt-get install libxml2-dev

Additional packages (such as build-essential) may be required to enable make, C compilation and linking.

Mac OS X

brew update
brew install libxml2

The Xcode package also needs to be installed to enable compilation.


This module handles installation of LibXML, and binding code (xml6) so it should be ready to go without additional setup.


This Raku module:

With thanks to: Christian Glahn, Ilya Martynov, Matt Sergeant, Petr Pajas, Shlomi Fish, Toby Inkster, Tobias Leich, Xliff, and others.


2001-2007, Ltd.

2002-2006, Christian Glahn.

2006-2009, Petr Pajas.


This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0