В библиотеке Go - goquery, которая предоставляет удобный инструментарий для парсинга HTML, можно использовать сочетание селекторов, чтобы правильно выбрать элементы HTML, такие как <tr>
и <td>
, на основе их тегов или атрибутов.
Для выбора <tr>
и <td>
можно использовать следующий селектор:
package main import ( "fmt" "log" "strings" "github.com/PuerkitoBio/goquery" ) func main() { html := ` <table> <tr> <td>Cell 1</td> <td>Cell 2</td> </tr> <tr> <td>Cell 3</td> <td>Cell 4</td> </tr> </table> ` reader := strings.NewReader(html) doc, err := goquery.NewDocumentFromReader(reader) if err != nil { log.Fatal(err) } doc.Find("tr").Each(func(i int, tr *goquery.Selection) { fmt.Printf("Row %d:n", i+1) tr.Find("td").Each(func(j int, td *goquery.Selection) { fmt.Printf(" Column %d: %sn", j+1, td.Text()) }) fmt.Println() }) }
Обратите внимание, что мы используем функцию Find()
для выбора элементов <tr>
, а затем внутри функции Each()
выполняем итерацию по этим <tr>
и снова используем функцию Find()
для выбора элементов <td>
в каждом <tr>
. Затем можно получить текстовое содержимое каждого <td>
с помощью метода Text()
.
В результате выполнения приведенного выше кода будет выведено:
Row 1: Column 1: Cell 1 Column 2: Cell 2 Row 2: Column 1: Cell 3 Column 2: Cell 4
Таким образом, мы успешно выбрали все <tr>
и <td>
элементы в таблице и вывели текстовое содержимое каждой ячейки.