2

有没有一种方法可以仅使用一个结构(带有encode/xml)来提取 HTML 文件中的图像源?现在我有这样的东西

type XML struct {
    A Image `xml:"div>img"`
}

type Image struct {
    I string `xml:"src,attr"`
}

并且只声明这样的东西会很棒:

type Image struct {
    I string `xml:"div>img,src,attr"`
}

这是 HTML:

<div><div><img src="hello.png"/></div></div>
4

1 回答 1

1

似乎一个好方法是使用exp/html包,像这样:

package main

import (
    "exp/html"
    "strings"
)

func main() {
    a, _ := html.Parse(strings.NewReader(testString))
    println(a.FirstChild.FirstChild.NextSibling.FirstChild.FirstChild.FirstChild.Attr[0].Val)
}

var testString = `<div><div><img src="hello.png"/></div></div>`

所有这些都是必需的,因为FirstChild构造了一个“正确”的 html5 树,所以这段代码实际上是在解析这个:NextSiblingexp/html

<html>
    <head></head>
    <body>
        <div>
            <div>
                <img src="hello.png"/>
            </div>
        </div>
    </body>
</html>
于 2012-10-05T00:16:22.033 回答