From 6bc8455206397859d923bb022fc31220135dc98d Mon Sep 17 00:00:00 2001 From: fedor Date: Fri, 13 May 2022 10:50:53 -0400 Subject: [PATCH] Respect XML encoding --- go.mod | 5 ++++- go.sum | 9 ++++++++- parse.go | 2 ++ parse_test.go | 11 +++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index b93abb4..d22b3c4 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,7 @@ module github.com/joshdk/go-junit go 1.12 -require github.com/stretchr/testify v1.4.0 +require ( + github.com/stretchr/testify v1.4.0 + golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 +) diff --git a/go.sum b/go.sum index 68164f9..6e7ab1a 100644 --- a/go.sum +++ b/go.sum @@ -2,10 +2,17 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= diff --git a/parse.go b/parse.go index e659378..8cb9d0a 100644 --- a/parse.go +++ b/parse.go @@ -8,6 +8,7 @@ import ( "bytes" "encoding/xml" "errors" + "golang.org/x/net/html/charset" "html" "io" ) @@ -107,6 +108,7 @@ func parse(reader io.Reader) ([]xmlNode, error) { root xmlNode ) + dec.CharsetReader = charset.NewReaderLabel if err := dec.Decode(&root); err != nil { return nil, err } diff --git a/parse_test.go b/parse_test.go index 3b09834..f8f547b 100644 --- a/parse_test.go +++ b/parse_test.go @@ -166,6 +166,17 @@ func TestParse(t *testing.T) { }, }, }, + { + title: "handle encoding", + input: []byte(``), + expected: []xmlNode{ + { + XMLName: xml.Name{ + Local: "root", + }, + }, + }, + }, } for index, test := range tests {