doujing5150 2017-09-04 16:41
浏览 30
已采纳

创建流以在GO中读取巨大的字符串

I have a huge xml in a variable and a function to decode this xml. I can't use unmarshal because at a certain momment I need to read an element and add it immediately in the db.

Example:

db := mongo.Connect()

decoder := xml.NewDecoder(resp.Body)
defer resp.Body.Close()

for {
    token, _ := decoder.Token()
    if token == nil {
        break
    }

    switch se := token.(type) {
    case xml.StartElement:
    ...
}

But now I need to read from a string. So I don't have the resp.Body anymore but a string. The NewDecoder() function receives an io.Reader, so I think I can in read from a stream. How can I do this??

  • 写回答

1条回答 默认 最新

  • dongxi1320 2017-09-04 16:43
    关注

    Turn any string into an io.Reader with the strings.NewReader method:

    reader := strings.NewReader("some string")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵