登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-14 15:09:34 374浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《在 Go/Golang 中使用 xml.NewDecoder(xmlFile) 解析大型 XML 文件时如何实现进度计数器?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我按照此网站上的示例编写了一些代码来解析大型 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/Golang 中使用 xml.NewDecoder(xmlFile) 解析大型 XML 文件时如何实现进度计数器?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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