diff options
author | Peter De Wachter <pdewacht@gmail.com> | 2019-03-02 16:38:02 +0100 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2019-08-15 21:26:07 -0700 |
commit | 3a39d110f0f2a3e976df1e810a861c602a634d14 (patch) | |
tree | 5efc55fc9294337ad270cfdaaaff8986d95de6a7 /reader | |
parent | 6d39f2a4cb6b00e11defff08dab82ef3a5df5a42 (diff) |
Accept HTML entities when parsing XML
Every once in a while, one of my feeds would throw an XML parse error
because it used ` ` or some other HTML entity. I feel Miniflux
should be lenient here, and Go already has a handy hook to make this
work.
Diffstat (limited to 'reader')
-rw-r--r-- | reader/atom/parser.go | 1 | ||||
-rw-r--r-- | reader/opml/parser.go | 1 | ||||
-rw-r--r-- | reader/parser/format.go | 1 | ||||
-rw-r--r-- | reader/rdf/parser.go | 1 | ||||
-rw-r--r-- | reader/rss/parser.go | 1 |
5 files changed, 5 insertions, 0 deletions
diff --git a/reader/atom/parser.go b/reader/atom/parser.go index 152626c..85be4b5 100644 --- a/reader/atom/parser.go +++ b/reader/atom/parser.go @@ -17,6 +17,7 @@ import ( func Parse(data io.Reader) (*model.Feed, *errors.LocalizedError) { atomFeed := new(atomFeed) decoder := xml.NewDecoder(data) + decoder.Entity = xml.HTMLEntity decoder.CharsetReader = encoding.CharsetReader err := decoder.Decode(atomFeed) diff --git a/reader/opml/parser.go b/reader/opml/parser.go index 1c24a70..1bdec20 100644 --- a/reader/opml/parser.go +++ b/reader/opml/parser.go @@ -16,6 +16,7 @@ import ( func Parse(data io.Reader) (SubcriptionList, *errors.LocalizedError) { feeds := new(opml) decoder := xml.NewDecoder(data) + decoder.Entity = xml.HTMLEntity decoder.CharsetReader = encoding.CharsetReader err := decoder.Decode(feeds) diff --git a/reader/parser/format.go b/reader/parser/format.go index 87963d3..fef14fe 100644 --- a/reader/parser/format.go +++ b/reader/parser/format.go @@ -27,6 +27,7 @@ func DetectFeedFormat(data string) string { } decoder := xml.NewDecoder(strings.NewReader(data)) + decoder.Entity = xml.HTMLEntity decoder.CharsetReader = encoding.CharsetReader for { diff --git a/reader/rdf/parser.go b/reader/rdf/parser.go index 90eb1dc..f942317 100644 --- a/reader/rdf/parser.go +++ b/reader/rdf/parser.go @@ -17,6 +17,7 @@ import ( func Parse(data io.Reader) (*model.Feed, *errors.LocalizedError) { feed := new(rdfFeed) decoder := xml.NewDecoder(data) + decoder.Entity = xml.HTMLEntity decoder.CharsetReader = encoding.CharsetReader err := decoder.Decode(feed) diff --git a/reader/rss/parser.go b/reader/rss/parser.go index 96339ae..2b46405 100644 --- a/reader/rss/parser.go +++ b/reader/rss/parser.go @@ -17,6 +17,7 @@ import ( func Parse(data io.Reader) (*model.Feed, *errors.LocalizedError) { feed := new(rssFeed) decoder := xml.NewDecoder(data) + decoder.Entity = xml.HTMLEntity decoder.CharsetReader = encoding.CharsetReader err := decoder.Decode(feed) |