Open tuan-nxcr opened 2 years ago
Add if query != nil {}
to avoid throw a query is nil exception before println(query.Data)
@zhengchun this is more of a question why Parse
can proceed without any error when I give it invalid XML, not about how to handle a nil pointer exception.
Sorry. In parse processing, we using https://pkg.go.dev/encoding/xml#NewDecoder to parsing, no extract additional method to check the input document whether is XML or JSON.
@zhengchun
Thanks for reopening! Yes, I was just looking for some way to validate that we have at least well-formed XML before proceeding to parsing (similar to what is recommended by the authors of the gjson package https://github.com/tidwall/gjson#validate-json).
My workaround for this right now is to precede the xmlquery.Parse
step with:
func isXml(someString string) bool {
return xml.Unmarshal([]byte(someString), new(interface{})) == nil
}
(the above was inspired by this Stackoverflow answer, which I will say is quite unintuitive)
I was expecting
Parse
orQuery
to error out if I were to pass in something completely invalid, but it falls all the way through instead:using: