Skip to content

cascadiavshtmlquery

BSD-2-Clause 1 1 754
58.1 thousand (month) Feb 20 2018 Start(2018-02-20 18:47:44 ago)
781 1 8 MIT
Feb 07 2019 58.1 thousand (month) v1.3.6(2026-03-06 04:46:15 ago)

cascadia is a library for Go that provides a CSS selector engine, allowing you to use CSS selectors to select elements from an HTML document.

It is built on top of the html package in the Go standard library, and provides a more efficient and powerful way to select elements from an HTML document.

htmlquery is a Go library that allows you to parse and extract data from HTML documents using XPath expressions. It provides a simple and intuitive API for traversing and querying the HTML tree structure, and it is built on top of the popular Goquery library.

Example Use


```go package main import ( "fmt" "github.com/andybalholm/cascadia" "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 CSS selector sel, err := cascadia.Compile("p") if err != nil { fmt.Println("Error:", err) return } // Use the Selector.Match method to select elements from the document matches := sel.Match(doc) if len(matches) > 0 { fmt.Println(matches[0].FirstChild.Data) // > Hello, World! } } ```

```go package main

import ( "fmt" "log"

"github.com/antchfx/htmlquery" )

func main() { // Parse the HTML string doc, err := htmlquery.Parse([]byte(<html> <body> <h1>Hello, World!</h1> <ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul> </body> </html>)) if err != nil { log.Fatal(err) }

// Extract the text of the first

element h1 := htmlquery.FindOne(doc, "//h1") fmt.Println(htmlquery.InnerText(h1)) // "Hello, World!"

// Extract the text of all

  • elements lis := htmlquery.Find(doc, "//li") for _, li := range lis { fmt.Println(htmlquery.InnerText(li)) } // "Item 1" // "Item 2" // "Item 3" } ```

  • Alternatives / Similar


    Was this page helpful?