要么我失去了我的想法,我不明白指针数组,或图书馆被捣毁。也许你可以帮忙。下面的代码似乎很好地获取Atom项目,但查看它们的标题会以空字符串的形式返回。为什么不使用go-pkg-rss返回Atom项目标题?
(这恰好是通过HTTP实现的,我不认为这是问题,但当然任何事情都有可能。)
package main
import (
"fmt"
rss "github.com/jteeuwen/go-pkg-rss"
"net/http"
"os"
)
var items []*rss.Item
var channels []*rss.Channel
func hello(w http.ResponseWriter, r *http.Request) {
feed := rss.New(5, true, chanHandler, itemHandler)
url := "http://stackoverflow.com/feeds"
feed.Fetch(url, nil)
fmt.Printf("Sent fetch for %s\n", url)
fmt.Fprintf(w, "There are %d items in %s\n\n", len(items), url)
for key, value := range items {
fmt.Fprintf(w, "%d: %s\n\n", key, value.Title)
}
}
func main() {
http.HandleFunc("/", hello)
http.ListenAndServe(":"+os.Getenv("PORT"), nil)
}
func chanHandler(feed *rss.Feed, newchannels []*rss.Channel) {
channels = newchannels
}
func itemHandler(feed *rss.Feed, ch *rss.Channel, newitems []*rss.Item) {
items = newitems
}
我认为你是对的,在其中的一个实用程序:https://github.com/jteeuwen/go-pkg-rss/issues/22 –
PS。您可以轻松调整代码以在单独的goroutine中获取结果,并获得更好的性能。 – rastasheep