lxml xpath为节点的所有后代返回一个列表项

时间:2017-11-10 16:04:01

标签: python html xml xpath lxml

的xml:

<div class="nsm-brief-primary-title-group">
        <a class="nsm-brief-action-link" href="/Mobile/Search/Title/1.10.1.511937"><span class="nsm-short-item nsm-e135"><span class="nsm-hit-text">Airplanes</span> take off and land</span></a>
    </div>

例如此代码:

titles = tree.xpath('//div[@class="nsm-brief-primary-title-group"]/descendant::*/text()')
print 'titles: ', titles

返回一个列表:

titles:  ['Airplanes', ' take off and land']

如何从具有该类名称的div的后代创建任何文本作为数组中的单个项目?

titles:  ['Airplanes take off and land']

1 个答案:

答案 0 :(得分:0)

要将元素中的所有后代文本节点作为单个字符串,您可以使用XPath string()函数将该元素转换为字符串:

title = tree.xpath('string(//div[@class="nsm-brief-primary-title-group"]/a)')

如果a中有多个div个元素,并且您希望每个元素都包含一个字符串,那么您需要在个别{{1}上应用string()函数元素:

a