Как получить весь текст до элемент в etree, отделенный от текста после элемент?lxml etree получить весь текст перед элементом
from lxml import etree
tree = etree.fromstring('''
<a>
find
<b>
the
</b>
text
<dd></dd>
<c>
before
</c>
<dd></dd>
and after
</a>
''')
Что я хочу? В этом примере <dd>
теги разделители для всех из них
for el in tree.findall('.//dd'):
Я хотел бы иметь весь текст до и после них:
[
{
el : <Element dd at 0xsomedistinctadress>,
before : 'find the text',
after : 'before and after'
},
{
el : <Element dd at 0xsomeotherdistinctadress>,
before : 'find the text before',
after : 'and after'
}
]
Моя идея состояла в том, чтобы использовать какой-заполнителей в дерево, с которым я заменяю теги <dd>
, а затем разрезаю строку на этом месте, но мне нужна переписка с фактическим элементом.