Xml 在Go中解析RSS提要
我想用围棋写一个播客下载程序。下面的代码解析RSS提要,但在将解析后的数据打印到标准输出时,通道的链接为空。我不知道为什么。有什么建议吗?我是新来的Xml 在Go中解析RSS提要,xml,go,rss,Xml,Go,Rss,我想用围棋写一个播客下载程序。下面的代码解析RSS提要,但在将解析后的数据打印到标准输出时,通道的链接为空。我不知道为什么。有什么建议吗?我是新来的 主程序包 进口( “编码/xml” “fmt” “net/http” ) 类型外壳结构{ Url字符串`xml:“Url,attr”` Length int64`xml:“长度,属性”` 类型字符串`xml:“类型,属性”` } 类型项结构{ 标题字符串`xml:“标题”` 链接字符串`xml:“链接”` Desc string`xml:“说明”`
主程序包
进口(
“编码/xml”
“fmt”
“net/http”
)
类型外壳结构{
Url字符串`xml:“Url,attr”`
Length int64`xml:“长度,属性”`
类型字符串`xml:“类型,属性”`
}
类型项结构{
标题字符串`xml:“标题”`
链接字符串`xml:“链接”`
Desc string`xml:“说明”`
Guid字符串`xml:“Guid”`
附件`xml:“附件”`
PubDate字符串`xml:“PubDate”`
}
类型通道结构{
标题字符串`xml:“标题”`
链接字符串`xml:“链接”`
Desc string`xml:“说明”`
Items[]Item`xml:“Item”`
}
类型Rss结构{
Channel`xml:“频道”`
}
func main(){
resp,err:=http.Get(“http://www.bbc.co.uk/programmes/p02nrvz8/episodes/downloads.rss")
如果错误!=零{
fmt.Printf(“错误获取:%v\n”,错误)
返回
}
延迟响应主体关闭()
rss:=rss{}
解码器:=xml.NewDecoder(分别为正文)
err=解码器。解码(&rss)
如果错误!=零{
fmt.Printf(“错误解码:%v\n”,错误)
返回
}
fmt.Printf(“频道标题:%v\n”,rss.Channel.title)
fmt.Printf(“频道链接:%v\n”,rss.Channel.link)
对于i,item:=范围rss.Channel.Items{
fmt.Printf(“%v.项目标题:%v\n”,i,项目标题)
}
}
rss源中的xml有一个channel元素,其中包含两个子“link”元素:“link”和“atom:link”。即使有名称空间前缀,Go-xml解组器也会看到冲突。另见和
...
论坛-第六十二届改善世界的想法
http://www.bbc.co.uk/programmes/p02nrvz8
...
rss源中的xml有一个channel元素,其中包含两个子“link”元素:“link”和“atom:link”。即使有名称空间前缀,Go-xml解组器也会看到冲突。另见和
...
论坛-第六十二届改善世界的想法
http://www.bbc.co.uk/programmes/p02nrvz8
...
或使用类库或工具读取各种RSS源。或使用类库或工具读取各种RSS源
<?xml version="1.0" encoding="UTF-8"?>
...
<channel>
<title>Forum - Sixty Second Idea to Improve the World</title>
<link>http://www.bbc.co.uk/programmes/p02nrvz8</link>
...
<atom:link href="http://www.bbc.co.uk/..." />