У меня есть документ:Как выбрать все текстовые узлы в документе?
<html>
<body>
<p>Hello World!</p>
<p>Goodbye!</p>
</body>
</html>
Я хотел бы, чтобы перебрать все текстовые узлы в документе, выполнять распознавание объектов с именем (этот компонент работает на простом вводе текста), а затем выводит XPath всех элементов которые передают мой алгоритм распознавания. Моя проблема в том, что я не знаю, как захватить все текстовые элементы в документе, не отбрасывая их информацию о xpath. Например,
root.xpath("//text()")
Просто получается плоский массив строк:
['\n ', 'Hello World!', '\n ', 'Goodbye!', '\n ']
Все структурная информация теряется, так что я не имею возможности сказать, где в документе каждая строка была. Есть ли способ лучше?
Вот полный источник:
import lxml.html
import sys
with open(sys.argv[1]) as fin:
text_string = fin.read()
root = lxml.html.document_fromstring(text_string)
text_elements = root.xpath("//text()")
print text_elements
Ах, я думал, что это была только простая строка, но оказывается, что это не так. Благодаря! – misha