Skip to content

xml2vsxpath

MIT 64 4 223
968.5 thousand (month) Apr 20 2015 1.5.2(2025-12-01 15:40:00 ago)
739 2 18 MIT
Jun 08 2019 58.1 thousand (month) v1.3.6(2026-02-23 07:10:29 ago)

The xml2 package is a binding to libxml2, making it easy to work with HTML and XML from R. The API is somewhat inspired by jQuery.

xml2 can be used to parse HTML documents using XPath selectors and is a successor to R's XML package with a few improvements:

  • xml2 takes care of memory management for you. It will automatically free the memory used by an XML document as soon as the last reference to it goes away.
  • xml2 has a very simple class hierarchy so don't need to think about exactly what type of object you have, xml2 will just do the right thing.
  • More convenient handling of namespaces in Xpath expressions - see xml_ns() and xml_ns_strip() to get started.

xpath is a library for Go that allows you to use XPath expressions to select elements from an HTML document. It is built on top of the html package in the Go standard library, and provides a way to select elements from an HTML document using XPath expressions, which are more powerful and expressive than CSS selectors.

Example Use


```r library("xml2") x <- read_xml(" text ") x xml_name(x) xml_children(x) xml_text(x) xml_find_all(x, ".//baz") h <- read_html("

Hi !") h xml_name(h) ```

```go package main import ( "fmt" "github.com/antchfx/xpath" "golang.org/x/net/html" "strings" ) func main() { // Create an HTML string html := `

Hello, World!

Example
` // Parse the HTML string into a node tree doc, err := html.Parse(strings.NewReader(html)) if err != nil { fmt.Println("Error:", err) return } // Compile the XPath expression expr, err := xpath.Compile("//p") if err != nil { fmt.Println("Error:", err) return } // Use the Evaluate method to select elements from the document nodes, err := expr.Evaluate(xpath.NodeNavigator(doc)) if err != nil { fmt.Println("Error:", err) return } if nodes.MoveNext() { fmt.Println(nodes.Current().Value()) // > Hello, World! } } ```

Alternatives / Similar


Was this page helpful?