具有相同名称的元素下的XPath-Python组text()

时间:2018-09-13 08:21:31

标签: python xpath lxml

我需要提取元素某些名称下的所有文本。但是我也需要将它们分组。 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 :(得分:0)

尝试以下操作以获得所需的输出:

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