У меня есть эта проблема, я обрабатываю некоторые таблицы с использованием lxml - исходные файлы в формате mhtml, они являются файлами Excel.Мне нужно найти строки, которые содержат элементы заголовка 'th' элементов.Я хочу использовать элементы заголовка, но мне нужны строки, из которых они получены, чтобы убедиться, что я обрабатываю все по порядку.
Итак, я занимался поиском всех элементов th, а затем элементов, использующих e.Функция getparent () для получения строки (так как th является дочерним элементом строки).Но в итоге мне приходится тянуть th-ые элементы дважды, один раз, чтобы найти их и получить строки, а затем снова вынуть их из строк, чтобы проанализировать данные, которые я ищу.Это не может быть лучшим способом сделать это, поэтому мне интересно, есть ли что-то, что мне не хватает.
Вот мой код
from lxml import html
theString=unicode(open('c:\\secexcel\\1314054-R20110331-C20101231-F60-SEQ132.xls').read(),'UTF-8','replace')
theTree=html.fromstring(theString)
tables=[e for e in theTree.iter() if e.tag=='table']
for table in tables :
headerCells=[e for e in table.iter() if e.tag=='th']
headerRows=[]
for headerCell in headerCells:
if headerCell.getparent().tag=='tr':
if headerCell.getparent() not in headerRows:
headerRows.append(headerCell.getparent())
for headerRow in headerRows:
newHeaderCells=[e for e in headerRow.iter() if e.tag=='th']
#Now I will extract some data and attributes from the th elements