LibXML2 + pull parser (stax): позиция потока (ftell) события?
Я хотел бы создать индекс, а затем получить доступ к некоторым частям огромного XML-файла, поэтому мне нужно получить смещение (ftell
...) для некоторых событий startElement.
Используя интерфейс синтаксического анализатора (stax) libxml2 ( http://www.xmlsoft.org/xmlreader.html), возможно ли получить смещение в потоке события, используя libxml2?
1 ответ
Используйте функцию xmlTextReaderByteConsumed
:
long xmlTextReaderByteConsumed (xmlTextReaderPtr reader)
Эта функция предоставляет текущий индекс синтаксического анализатора, используемого читателем, относительно начала текущего объекта. Эта функция фактически просто оборачивает вызов xmlBytesConsumed() для контекста синтаксического анализатора, связанного с читателем. См. XmlBytesConsumed () для получения дополнительной информации.
читатель: читатель XML
Возвращает: индекс в байтах от начала объекта или -1, если индекс не может быть вычислен.