xmlquery icon indicating copy to clipboard operation
xmlquery copied to clipboard

Parse file with special characters

Open jiwanovski87 opened this issue 1 year ago • 1 comments

Hey everyone,

currently I am trying to parse an xml file with a country specific character. As example: In Germany there is the character ä. In XML this is represented as ä

So when I just do the following code I receive this error message. How can I fix this? encoding/xml.SyntaxError {Msg: "invalid character entity ä", Line: 7}

xf, err := os.Open(f)
if err != nil {
	p.Logger.Errorf("Cannot open file: %s", f)
}
defer xf.Close()

doc, err := xmlquery.Parse(xf)
if err != nil {
	fmt.Println(err)
}

jiwanovski87 avatar Nov 04 '24 15:11 jiwanovski87

Ok, I believe I have fixed it with the following code:

doc, err := xmlquery.ParseWithOptions(xf, xmlquery.ParserOptions{
	Decoder: &xmlquery.DecoderOptions{
		CharsetReader: func(charset string, input io.Reader) (io.Reader, error) {
			utf8_reader := charmap.ISO8859_1.NewDecoder().Reader(input)
			return utf8_reader, nil
		},
	},
})
if err != nil {
	fmt.Println(err)
}

jiwanovski87 avatar Nov 04 '24 16:11 jiwanovski87