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.
This commit is contained in:
parent
6d39f2a4cb
commit
3a39d110f0
5 changed files with 5 additions and 0 deletions
|
@ -17,6 +17,7 @@ import (
|
||||||
func Parse(data io.Reader) (*model.Feed, *errors.LocalizedError) {
|
func Parse(data io.Reader) (*model.Feed, *errors.LocalizedError) {
|
||||||
atomFeed := new(atomFeed)
|
atomFeed := new(atomFeed)
|
||||||
decoder := xml.NewDecoder(data)
|
decoder := xml.NewDecoder(data)
|
||||||
|
decoder.Entity = xml.HTMLEntity
|
||||||
decoder.CharsetReader = encoding.CharsetReader
|
decoder.CharsetReader = encoding.CharsetReader
|
||||||
|
|
||||||
err := decoder.Decode(atomFeed)
|
err := decoder.Decode(atomFeed)
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
func Parse(data io.Reader) (SubcriptionList, *errors.LocalizedError) {
|
func Parse(data io.Reader) (SubcriptionList, *errors.LocalizedError) {
|
||||||
feeds := new(opml)
|
feeds := new(opml)
|
||||||
decoder := xml.NewDecoder(data)
|
decoder := xml.NewDecoder(data)
|
||||||
|
decoder.Entity = xml.HTMLEntity
|
||||||
decoder.CharsetReader = encoding.CharsetReader
|
decoder.CharsetReader = encoding.CharsetReader
|
||||||
|
|
||||||
err := decoder.Decode(feeds)
|
err := decoder.Decode(feeds)
|
||||||
|
|
|
@ -27,6 +27,7 @@ func DetectFeedFormat(data string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
decoder := xml.NewDecoder(strings.NewReader(data))
|
decoder := xml.NewDecoder(strings.NewReader(data))
|
||||||
|
decoder.Entity = xml.HTMLEntity
|
||||||
decoder.CharsetReader = encoding.CharsetReader
|
decoder.CharsetReader = encoding.CharsetReader
|
||||||
|
|
||||||
for {
|
for {
|
||||||
|
|
|
@ -17,6 +17,7 @@ import (
|
||||||
func Parse(data io.Reader) (*model.Feed, *errors.LocalizedError) {
|
func Parse(data io.Reader) (*model.Feed, *errors.LocalizedError) {
|
||||||
feed := new(rdfFeed)
|
feed := new(rdfFeed)
|
||||||
decoder := xml.NewDecoder(data)
|
decoder := xml.NewDecoder(data)
|
||||||
|
decoder.Entity = xml.HTMLEntity
|
||||||
decoder.CharsetReader = encoding.CharsetReader
|
decoder.CharsetReader = encoding.CharsetReader
|
||||||
|
|
||||||
err := decoder.Decode(feed)
|
err := decoder.Decode(feed)
|
||||||
|
|
|
@ -17,6 +17,7 @@ import (
|
||||||
func Parse(data io.Reader) (*model.Feed, *errors.LocalizedError) {
|
func Parse(data io.Reader) (*model.Feed, *errors.LocalizedError) {
|
||||||
feed := new(rssFeed)
|
feed := new(rssFeed)
|
||||||
decoder := xml.NewDecoder(data)
|
decoder := xml.NewDecoder(data)
|
||||||
|
decoder.Entity = xml.HTMLEntity
|
||||||
decoder.CharsetReader = encoding.CharsetReader
|
decoder.CharsetReader = encoding.CharsetReader
|
||||||
|
|
||||||
err := decoder.Decode(feed)
|
err := decoder.Decode(feed)
|
||||||
|
|
Loading…
Reference in a new issue