我的XML数据:
<?xml version="1.0" encoding="utf-8"?>
<feed
xmlns="http://www.w3.org/2005/Atom"
xmlns:idx="urn:atom-extension:indexing">
<entry>
<title type="html">Some Title</title>
<link href="https://www.google.com"></link>
</entry>
</feed>
我想解析每个<entry>
及其<title>
&amp;到目前为止<link>
标记已成功解析标题,但<link>
没有成功。
我的代码:
type Entry struct {
XMLName xml.Name `xml:"entry"`
Link string `xml:"link"`
Title string `xml:"title"`
}
type Feed struct {
XMLName xml.Name `xml:"feed"`
Entries []Entry `xml:"entry"`
}
func (s Entry) String() string {
return fmt.Sprintf("\t Link : %s - Title : %s \n", s.Link, s.Title)
}
的现场演示
答案 0 :(得分:3)
你关闭了。您的代码没有提取链接网址,因为它不是元素<link>
的值,而是属性 "href"
的值。
您可以使用以下代码提取属性的值:
type Link struct {
Href string `xml:"href,attr"`
}
您修改后的Entry
类型:
type Entry struct {
XMLName xml.Name `xml:"entry"`
Link Link `xml:"link"`
Title string `xml:"title"`
}
在Go Playground上尝试修改后的应用。