使用Go解析xml,其中包含多个项目

我只是无法让这个简单的事情起作用。我只是想解析一个简单的RSS XML并将所有项目放在结构数组中。


这是我的代码:


package main 


import (

    "fmt"

    "io/ioutil"

    "log"

    "net/http"

    "encoding/xml"

)


type RSS struct {

    XMLName xml.Name `xml:"rss"`

    items Items `xml:"channel"`

}

type Items struct {

    XMLName xml.Name `xml:"channel"`

    ItemList []Item `xml:"item"`

}

type Item struct {

    title string `xml:"title"`

    link string

    description string

}


func main() {

    res, err := http.Get("http://news.google.com/news?hl=en&gl=us&q=samsung&um=1&ie=UTF-8&output=rss")

    if err != nil {

        log.Fatal(err)

    }

    asText, err := ioutil.ReadAll(res.Body)

    if err != nil {

        log.Fatal(err)

    }


    var i RSS

    err = xml.Unmarshal([]byte(asText), &i)

    if err != nil {

        log.Fatal(err)  

    }


//  fmt.Printf("\ttxt2: %s\n", asText)

    fmt.Printf("%#v", i)


    for c, item := range i.items.ItemList {

        fmt.Printf("\t%d: %s\n", c, item.title)

    }


    res.Body.Close()


}

这是转储i的输出:


main.RSS{XMLName:xml.Name{Space:"", Local:"rss"}, items:main.Items{XMLName:xml.Name{Space:"", Local:""}, ItemList:[]main.Item(nil)}}


冉冉说
浏览 209回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go