6

私は Go の XML パッケージで遊んでいますが、次のコードの何が問題なのかわかりません。

package main

import (
    "encoding/xml"
    "fmt"
    "net/http"
) 

type Channel struct {
    Items Item
}

type Item struct {
    Title       string `xml:"title"`
    Link        string `xml:"link"`
    Description string `xml:"description"`
}

func main() {

    var items = new(Channel)
    res, err := http.Get("http://www.reddit.com/r/google.xml")

    if err != nil {
        fmt.Printf("Error: %v\n", err)
    } else {
        decoded := xml.NewDecoder(res.Body)

        err = decoded.Decode(items)

        if err != nil {
            fmt.Printf("Error: %v\n", err)
        }

        fmt.Printf("Title: %s\n", items.Items.Title)
    }
}

上記のコードはエラーなしで実行され、端末に出力されます。

Title:

構造体は空に見えますが、XML データが取り込まれていない理由がわかりません。

4

3 に答える 3

5

私はこのように完全に明示的です - すべての XML 部分に名前を付けます

完全な動作例については、プレイグラウンドを参照してください

type Rss struct {
    Channel Channel `xml:"channel"`
}

type Channel struct {
    Title       string `xml:"title"`
    Link        string `xml:"link"`
    Description string `xml:"description"`
    Items       []Item `xml:"item"`
}

type Item struct {
    Title       string `xml:"title"`
    Link        string `xml:"link"`
    Description string `xml:"description"`
}
于 2013-09-29T19:23:25.587 に答える