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, если индекс не может быть вычислен.

Другие вопросы по тегам