Compare commits
3 Commits
4c1f128069
...
33b08bdd00
| Author | SHA1 | Date | |
|---|---|---|---|
| 33b08bdd00 | |||
| 45e84573e9 | |||
| f41daf8f88 |
22
match.go
22
match.go
@@ -15,7 +15,7 @@ var body = &html.Node{
|
||||
DataAtom: atom.Body,
|
||||
}
|
||||
|
||||
var ErrNotAnElementNode = errors.New("not an ElementNode")
|
||||
var ErrNotAnElementNode = errors.New("not a html.ElementNode")
|
||||
|
||||
func parseFragment(s string) (*html.Node, error) {
|
||||
n, err := html.ParseFragment(strings.NewReader(s), body)
|
||||
@@ -25,19 +25,27 @@ func parseFragment(s string) (*html.Node, error) {
|
||||
return n[0], nil
|
||||
}
|
||||
|
||||
func MatchElemAttr(s string, n2 *html.Node) (bool, error) {
|
||||
func MatchElemAttr(s string, n *html.Node) (bool, error) {
|
||||
n1, err := parseFragment(s)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
if !(n1.Type == html.ElementNode &&
|
||||
n2.Type == html.ElementNode) {
|
||||
return false, ErrNotAnElementNode
|
||||
if n1.Type != html.ElementNode {
|
||||
return false, errors.Join(
|
||||
ErrNotAnElementNode,
|
||||
errors.New("s isn's a html.ElementNode"),
|
||||
)
|
||||
}
|
||||
if n.Type != html.ElementNode {
|
||||
return false, errors.Join(
|
||||
ErrNotAnElementNode,
|
||||
errors.New("n isn's a html.ElementNode"),
|
||||
)
|
||||
}
|
||||
|
||||
if n1.Data == n2.Data &&
|
||||
slices.Equal(n1.Attr, n2.Attr) {
|
||||
if n1.Data == n.Data &&
|
||||
slices.Equal(n1.Attr, n.Attr) {
|
||||
return true, nil
|
||||
}
|
||||
return false, nil
|
||||
|
||||
Reference in New Issue
Block a user