Fix Atom/RSS feed parsing due to changes in jteeuwen/go-pkg-xmlx.

Due to recent changes involving how values are dealt with in xmlx, update
the RSS/Atom parsing.  Instead of using the Value property of an xmlx Node,
use the new GetValue function offered in PR jteeuwen/go-pkg-xmlx#15.
This commit is contained in:
Matthew Dawson 2013-09-30 01:23:51 -04:00
parent c173d50291
commit 20d050f908
2 changed files with 12 additions and 12 deletions

View File

@ -50,14 +50,14 @@ func (this *Feed) readAtom(doc *xmlx.Document) (err error) {
if tn = node.SelectNode(ns, "subtitle"); tn != nil { if tn = node.SelectNode(ns, "subtitle"); tn != nil {
ch.SubTitle = SubTitle{} ch.SubTitle = SubTitle{}
ch.SubTitle.Type = tn.As("", "type") ch.SubTitle.Type = tn.As("", "type")
ch.SubTitle.Text = tn.Value ch.SubTitle.Text = tn.GetValue()
} }
if tn = node.SelectNode(ns, "generator"); tn != nil { if tn = node.SelectNode(ns, "generator"); tn != nil {
ch.Generator = Generator{} ch.Generator = Generator{}
ch.Generator.Uri = tn.As("", "uri") ch.Generator.Uri = tn.As("", "uri")
ch.Generator.Version = tn.As("", "version") ch.Generator.Version = tn.As("", "version")
ch.Generator.Text = tn.Value ch.Generator.Text = tn.GetValue()
} }
if tn = node.SelectNode(ns, "author"); tn != nil { if tn = node.SelectNode(ns, "author"); tn != nil {
@ -104,7 +104,7 @@ func (this *Feed) readAtom(doc *xmlx.Document) (err error) {
i.Content.Type = tn.As("", "type") i.Content.Type = tn.As("", "type")
i.Content.Lang = tn.S("xml", "lang") i.Content.Lang = tn.S("xml", "lang")
i.Content.Base = tn.S("xml", "base") i.Content.Base = tn.S("xml", "base")
i.Content.Text = tn.Value i.Content.Text = tn.GetValue()
} }
if tn = item.SelectNode(ns, "author"); tn != nil { if tn = item.SelectNode(ns, "author"); tn != nil {

18
rss.go
View File

@ -46,7 +46,7 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) {
ch.Links = make([]Link, len(list)) ch.Links = make([]Link, len(list))
for i, v := range list { for i, v := range list {
ch.Links[i].Href = v.Value ch.Links[i].Href = v.GetValue()
} }
ch.Description = node.S(ns, "description") ch.Description = node.S(ns, "description")
@ -63,12 +63,12 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) {
for i, v := range list { for i, v := range list {
ch.Categories[i] = new(Category) ch.Categories[i] = new(Category)
ch.Categories[i].Domain = v.As(ns, "domain") ch.Categories[i].Domain = v.As(ns, "domain")
ch.Categories[i].Text = v.Value ch.Categories[i].Text = v.GetValue()
} }
if n = node.SelectNode(ns, "generator"); n != nil { if n = node.SelectNode(ns, "generator"); n != nil {
ch.Generator = Generator{} ch.Generator = Generator{}
ch.Generator.Text = n.Value ch.Generator.Text = n.GetValue()
} }
ch.TTL = node.I(ns, "ttl") ch.TTL = node.I(ns, "ttl")
@ -83,7 +83,7 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) {
list = node.SelectNodes(ns, "days") list = node.SelectNodes(ns, "days")
ch.SkipDays = make([]int, len(list)) ch.SkipDays = make([]int, len(list))
for i, v := range list { for i, v := range list {
ch.SkipDays[i] = days[v.Value] ch.SkipDays[i] = days[v.GetValue()]
} }
if n = node.SelectNode(ns, "image"); n != nil { if n = node.SelectNode(ns, "image"); n != nil {
@ -126,16 +126,16 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) {
tl = item.SelectNodes(ns, "link") tl = item.SelectNodes(ns, "link")
for _, v := range tl { for _, v := range tl {
lnk := new(Link) lnk := new(Link)
lnk.Href = v.Value lnk.Href = v.GetValue()
i.Links = append(i.Links, lnk) i.Links = append(i.Links, lnk)
} }
if n = item.SelectNode(ns, "author"); n != nil { if n = item.SelectNode(ns, "author"); n != nil {
i.Author = Author{} i.Author = Author{}
i.Author.Name = n.Value i.Author.Name = n.GetValue()
} }
if n = item.SelectNode(ns, "creator"); n != nil { if n = item.SelectNode(ns, "creator"); n != nil {
i.Author = Author{ Name: n.Value } i.Author = Author{ Name: n.GetValue() }
} }
i.Comments = item.S(ns, "comments") i.Comments = item.S(ns, "comments")
@ -146,7 +146,7 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) {
for _, lv := range tl { for _, lv := range tl {
cat := new(Category) cat := new(Category)
cat.Domain = lv.As(ns, "domain") cat.Domain = lv.As(ns, "domain")
cat.Text = lv.Value cat.Text = lv.GetValue()
i.Categories = append(i.Categories, cat) i.Categories = append(i.Categories, cat)
} }
@ -162,7 +162,7 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) {
if src := item.SelectNode(ns, "source"); src != nil { if src := item.SelectNode(ns, "source"); src != nil {
i.Source = new(Source) i.Source = new(Source)
i.Source.Url = src.As(ns, "url") i.Source.Url = src.As(ns, "url")
i.Source.Text = src.Value i.Source.Text = src.GetValue()
} }
tl = item.SelectNodes("http://purl.org/rss/1.0/modules/content/", "*") tl = item.SelectNodes("http://purl.org/rss/1.0/modules/content/", "*")