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

Xml 创建一个流以读取GO中的巨大字符串,xml,go,Xml,Go,我有一个巨大的xml在一个变量和一个函数来解码这个xml。我不能使用unmarshal,因为在某个特定时刻,我需要读取一个元素并立即将其添加到数据库中 例如: db := mongo.Connect() decoder := xml.NewDecoder(resp.Body) defer resp.Body.Close() for { token, _ := decoder.Token() if token == nil { break }

我有一个巨大的xml在一个变量和一个函数来解码这个xml。我不能使用unmarshal,因为在某个特定时刻,我需要读取一个元素并立即将其添加到数据库中

例如:

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:
    ...
}

但现在我需要从字符串中读取。所以我不再有相应的身体,而是一根绳子。NewDecoder()函数接收io.Reader,因此我认为可以从流中读取。如何执行此操作???

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

reader := strings.NewReader("some string")

类似的类型也存在于字节片的
字节中。