I have a xml decode function in my app and I use xml.NewDecoder(resp.Body) to decode my xml. the NewDecoder functions receives an io.Reader. But the problem is that in my response from the server I receive the first 230 bytes i need to ignore and the remaining bytes are the xml encoded in base64 that I want to decode. Here an example of the response body:
--RandomCaracteres...
Content-Type: application/xml; charset=UTF-8; name=response_xml
<Response success="1"/>
--RandomCaracteres...
Content-Type: text/xml; name=report.xml
Content-Transfer-Encoding: base64
PE5leHBvc2VSZXBvcnQgdmVyc2lvbj0iMi4wIj4KPHNjYW5zPgo8c2NhbiBpZD0iNDYwMCIgbmFt......
I need to read only the PE5leHBvc2VSZXBv... data. With the following code I can read the xml:
bodyBytes, _ := ioutil.ReadAll(resp.Body)
defer resp.Body.Close()
data, err := base64.StdEncoding.DecodeString(string(bodyBytes)[230:])
fmt.Println(data)
but I can't call the xml.NewDecoder() function because data is not a io.Reader type. Is there any way to creade a Decode object from a string?