Golang Google提醒XML解析

时间:2015-03-04 15:08:54

标签: xml go

我的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)
}

http://play.golang.org/p/hteQ5RuMco

的现场演示

1 个答案:

答案 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上尝试修改后的应用。