Найден этот вопрос получен ответ, но ответ обходит часть «смещения».
мой код (с использованием from xml.etree.ElementTree import iterparse
):
def myparse(self)
context = iterparse(self.source, events=("start", "end", "start-ns"))
self.root = None
for event, elem in context:
if event == "start-ns" and elem[0] == "":
self.uri = elem[1]
continue
if event == "start" and self.root is None:
self.root = elem
continue
if event == "end" and elem.tag == "{%s}page" % self.uri:
thetext = revision.findtext("{%s}text" % self.uri)
theposition = 0#TODO: find the position if possible
yield thetext, theposition
elem.clear()
self.root.clear()
Я спрашиваю, есть ли что-то вроде expat 's GetCurrentByteIndex
.
Итак:
Как найти смещение во входной строке или файле элемента (начальное или конечное смещение или оба) при выполнении итерации с xml.etree.ElementTree.iterparse?