diff --git a/src/parser/atom.go b/src/parser/atom.go
index 361c747..f59bd4a 100644
--- a/src/parser/atom.go
+++ b/src/parser/atom.go
@@ -47,6 +47,8 @@ type atomLinks []atomLink
func (a *atomText) Text() string {
if a.Type == "html" {
return htmlutil.ExtractText(a.Data)
+ } else if a.Type == "xhtml" {
+ return htmlutil.ExtractText(a.XML)
}
return a.Data
}
diff --git a/src/parser/atom_test.go b/src/parser/atom_test.go
index 1b81a49..f47594e 100644
--- a/src/parser/atom_test.go
+++ b/src/parser/atom_test.go
@@ -94,6 +94,44 @@ func TestAtomHTMLTitle(t *testing.T) {
}
}
+func TestAtomXHTMLTitle(t *testing.T) {
+ feed, _ := Parse(strings.NewReader(`
+
+
+ say <code>what</code>?
+
+ `))
+ have := feed.Items[0].Title
+ want := "say what?"
+ if !reflect.DeepEqual(want, have) {
+ t.Logf("want: %#v", want)
+ t.Logf("have: %#v", have)
+ t.FailNow()
+ }
+}
+
+func TestAtomXHTMLNestedTitle(t *testing.T) {
+ feed, _ := Parse(strings.NewReader(`
+
+
+
+
+
+
+
+
+ `))
+ have := feed.Items[0].Title
+ want := "Link to Example"
+ if !reflect.DeepEqual(want, have) {
+ t.Logf("want: %#v", want)
+ t.Logf("have: %#v", have)
+ t.FailNow()
+ }
+}
+
func TestAtomImageLink(t *testing.T) {
feed, _ := Parse(strings.NewReader(`