Я написал некоторый код для анализа больших файлов XML (> 3 ГБ), следуя примеру на этом сайте: 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: Как получить длину файла в Go?
Но какМогу ли я получить фактическую (или относительную) позицию decoder.Token()
?