登录
首页 >  Golang >  Go问答

XML解析器为何不自动填充结构?

来源:stackoverflow

时间:2024-02-13 11:18:25 137浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《XML解析器为何不自动填充结构?》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

尝试实现一个简单的 xml 解析,下面的代码无法按预期工作。

它只是返回一个 {[]}results,而它应该填充它。

为什么?...

package main
import "fmt"
import "encoding/xml"
import "bytes"

type Name struct {
    Name    string  `xml:"NAME"`
}
type Results struct {
    Names   []Name `xml:"RESULTS"`
}

func main() {
    data := []byte(`


 Apple
 Banana

`)
    var r Results
    decoder := xml.NewDecoder(bytes.NewBuffer(data))
    unError := decoder.Decode(&r)
    if unError != nil {
        fmt.Println("XML Unmarshaling error:", unError )
    }else{
        fmt.Printf("%v", r)
    }
}

在演示中和本地尝试过(go1.17.2)。


正确答案


我建议您使用在线结构生成器,例如 xmltogo,因此将其用作:

type RESULTS struct {
    XMLName xml.Name `xml:"RESULTS"`
    Text    string   `xml:",chardata"`
    NAME    []string `xml:"NAME"`
}

Try on playground

好了,本文到此结束,带大家了解了《XML解析器为何不自动填充结构?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>