Текст группы XPath-Python () под элементами с одинаковым именем - PullRequest
0 голосов
/ 13 сентября 2018

Мне нужно извлечь весь текст под определенным именем элементов.Но мне нужно их сгруппировать.Как будет выглядеть выражение XPath?

Пример:

<root>
<list><t>t1</t><t>t1</t></list>
<list><t>t2</t><t>t2</t></list>
<list><t>t3</t><t>t3</t></list>
</root>

Ожидаемый результат списка:

['t1t1', 't2t2', 't3t3']

Я использую пакет python lxml.Я не знаю, как их сгруппировать.

s = """<root>
<list><t>t1</t><t>t1</t></list>
<list><t>t2</t><t>t2</t></list>
<list><t>t3</t><t>t3</t></list>
</root>"""
from lxml import etree
xml = etree.fromstring(s)
result = xml.xpath('//list//text()')
print(result)

Мой результат:

['t1', 't1', 't2', 't2', 't3', 't3']

1 Ответ

0 голосов
/ 13 сентября 2018

Попробуйте ниже, чтобы получить требуемый вывод:

xml = etree.fromstring(s)
lists = xml.xpath('//list')
for item in lists:
    result = "".join([i for i in item.itertext()])
    print(result)
...