xml - 在go中遍历xml

标签 xml struct go xml-parsing

给定一个类似于以下的 xml block :

<data>
  <entry>
    ... several nested elements
  </entry>
  <entry>
    ... more nested elements
  </entry>
</data>

我如何遍历每个 <entry>文档中的元素并将其放入结构中以在移动到下一个条目之前对其执行一些操作?

我已经能够像上面那样从一个 XML block 中解析数据并将其存储到结构中,其中只有一个 <entry>。元素存在。也就是说,我能够成功地将这样的东西存储到一个结构中:

<entry>
  ... several nested elements
</entry>

最佳答案

解析 xml 文件直到到达条目元素是一种方法:

xmlFile, err := os.Open(filename)
    if err != nil {
    log.Fatal(err)
}
defer xmlFile.Close()
decoder := xml.NewDecoder(xmlFile)
total := 0
for {
    token, _ := decoder.Token()
    if token == nil {
        break
    }
    switch startElement := token.(type) {
        case xml.StartElement:
        if startElement.Name.Local == "entry" {
            // do what you need to do for each entry below
        }
    }
}

关于xml - 在go中遍历xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12084042/

相关文章:

html - 如何创建格式正确的 PDF?

java - 修复 XML 文件中的错误编码

api - 我怎样才能正确供应 github.com/docker/docker?

pointers - 在 Go 中修改结构中的结构 slice

google-app-engine - 通过id获取实体

azure - 如何使用适用于 Golang v0.3.1 的 Azure sdk 让我的消费者监听 Azure 服务总线上的消息?

java - Hibernate 代码不工作,如何解决?

xml - pretty-print - Spark/Scala 中的 XML 单记录

c++ - C++ 代码中的这个 struct X 有什么问题?

python - 在Python中解压ripemd160结果