gpt4 book ai didi

go - 使用 xml.NewDecoder(xmlFile) 在 Go/Golang 中解析大型 XML 文件时如何实现进度计数器?

转载 作者:数据小太阳 更新时间:2023-10-29 03:09:02 26 4
gpt4 key购买 nike

我按照本网站上的示例编写了一些代码来解析大型 XML 文件 (>3GB):https://blog.singleton.io/posts/2012-06-19-parsing-huge-xml-files-with-go/

想法是创建decoder := xml.NewDecoder(xmlFile),然后用decoder.Token()遍历文件,同时检查所有 xml.StartElement。只要找到正确的元素,就会使用 decoder.DecodeElement() 对其进行解码。

一切都很好。

我现在喜欢的是一种向用户显示进度的方法。类似于“x% 的文件已处理”。

我知道如何获取 XML 的文件大小:How to get file length in Go?

但是我怎样才能得到 decoder.Token() 的实际(或相对)位置呢?

最佳答案

xml.Decoder 具有返回当前位置的方法 InputOffset。您还需要其他东西吗?

关于go - 使用 xml.NewDecoder(xmlFile) 在 Go/Golang 中解析大型 XML 文件时如何实现进度计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55540015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com