dongpo4197 2017-09-01 20:52
浏览 36
已采纳

从字符串或字节数组GO创建XML解码器

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?

  • 写回答

1条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 如何在微信支付V3PHP版请求中添加header?
      • ¥15 在数字信号处理中用MATLAB显示波形。
      • ¥15 keil MDK软件进行仿真调试的局限
      • ¥15 关于gateway产生临时文件夹的问题
      • ¥15 Java Broken Pipe以及OOM
      • ¥20 请问有没有RTL8211FS的参考原理图
      • ¥50 esp32的platfromio工程添加文件就会编译失败
      • ¥15 linux下运行VASP报错
      • ¥15 python里面查找赋值,如何可以在剩余未空值的行里面进行进一步的筛选呢?
      • ¥15 电路分析的综合实验有没有会的