From 750ceec0f240324feb53c5a666b668ca842b979d Mon Sep 17 00:00:00 2001 From: regadas Date: Sat, 22 Nov 2014 22:35:38 +0000 Subject: [PATCH 1/2] Fix channel and item extensions --- rss.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/rss.go b/rss.go index cefec26..05dd772 100644 --- a/rss.go +++ b/rss.go @@ -198,18 +198,16 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) { } } - tl = item.SelectNodes(ns, ns) i.Extensions = make(map[string]map[string][]Extension) - for _, lv := range tl { + for _, lv := range item.Children { getExtensions(&i.Extensions, lv) } ch.Items = append(ch.Items, i) } - x := node.SelectNodes(ns, ns) ch.Extensions = make(map[string]map[string][]Extension) - for _, v := range x { + for _, v := range node.Children { if v.Name.Space != "" { getExtensions(&ch.Extensions, v) } From 9c087ed4e8ed42b5d4b7bd362e017343a36def63 Mon Sep 17 00:00:00 2001 From: regadas Date: Tue, 25 Nov 2014 11:40:44 +0000 Subject: [PATCH 2/2] Remove duplicate namespace check --- rss.go | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/rss.go b/rss.go index 05dd772..2a3cc78 100644 --- a/rss.go +++ b/rss.go @@ -208,9 +208,7 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) { ch.Extensions = make(map[string]map[string][]Extension) for _, v := range node.Children { - if v.Name.Space != "" { - getExtensions(&ch.Extensions, v) - } + getExtensions(&ch.Extensions, v) } } @@ -221,17 +219,15 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) { func getExtensions(extensionsX *map[string]map[string][]Extension, node *xmlx.Node) { extentions := *extensionsX - if node.Name.Space != "" { - extensione, noErrors := getExtension(node) - if noErrors { - if len(extentions[node.Name.Space]) == 0 { - extentions[node.Name.Space] = make(map[string][]Extension, 0) - } - if len(extentions[node.Name.Space][node.Name.Local]) == 0 { - extentions[node.Name.Space][node.Name.Local] = make([]Extension, 0) - } - extentions[node.Name.Space][node.Name.Local] = append(extentions[node.Name.Space][node.Name.Local], extensione) + extension, noErrors := getExtension(node) + if noErrors { + if len(extentions[node.Name.Space]) == 0 { + extentions[node.Name.Space] = make(map[string][]Extension, 0) } + if len(extentions[node.Name.Space][node.Name.Local]) == 0 { + extentions[node.Name.Space][node.Name.Local] = make([]Extension, 0) + } + extentions[node.Name.Space][node.Name.Local] = append(extentions[node.Name.Space][node.Name.Local], extension) } }