我一直在玩Go的XML包,看不到下面的代碼有什麼問題。在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數據填充。
這似乎很大,但現在我無法通過標籤訪問元素:http://pastebin.com/zzVN140s –
請參閱上面我添加的源代碼清單。如果您對該提案仍有問題,請告知我們。 – seh
完美,這很好,我現在在一個不錯的循環中。感謝一個負載,我將不得不進一步探討爲什麼將slice分配給一個變量,然後允許訪問struct字段。再次感謝:) –