创建一个流来读取GO中的一个巨大的字符串

Viv*_*ivi -2 xml go

我在变量和函数中有一个巨大的xml来解码这个xml.我不能使用unmarshal因为在某个问题上我需要读取一个元素并立即在db中添加它.

例:

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:
    ...
}
Run Code Online (Sandbox Code Playgroud)

但现在我需要从字符串中读取.所以我没有resp.Body了,只是一个字符串.NewDecoder()函数接收一个io.Reader,所以我想我可以从流中读取.我怎样才能做到这一点??

Fli*_*mzy 5

io.Reader使用以下strings.NewReader方法将任何字符串转换为:

reader := strings.NewReader("some string")
Run Code Online (Sandbox Code Playgroud)