Skip to content
A light libxml wrapper for Go
Branch: master
Clone or download
Latest commit a1a8281 Jul 13, 2018


LibXML bindings for the Go programming language.

By Zhigang Chen and Hampton Catlin

This is a major rewrite from v0 in the following places:

  • Separation of XML and HTML
  • Put more burden of memory allocation/deallocation on Go
  • Fragment parsing -- no more deep-copy
  • Serialization
  • Some API adjustment


# Linux
sudo apt-get install libxml2-dev
# Mac
brew install libxml2

go get

Running tests

go test

Basic example

package main

import (

func main() {
  // fetch and read a web page
  resp, _ := http.Get("")
  page, _ := ioutil.ReadAll(resp.Body)

  // parse the web page
  doc, _ := gokogiri.ParseHtml(page)

  // perform operations on the parsed page -- consult the tests for examples

  // important -- don't forget to free the resources when you're done!
You can’t perform that action at this time.