如何使用xpath获取孩子的孩子的名单?

有table元素,其中包含tr元素。每个tr元素中都有td元素。

<table>
<tr>
<td> some data </td>
<td> other data </td>
</tr>
</table>

我想成对地从td元素中获取文本。但是我愿意用xpath来做。

因此,我通过应用xpath从lxml树中的tr元素获得了一个变量。然后应用xpath从该变量获取td元素。但是我从表中获得了所有td元素,我只想从该变量中限制td元素!

table = parsed.xpath("//table")
trElementFirst = table.xpath("/tr")[0]
tdElementsFromFirstTr = trElementFirst.xpath("/td")

我只想获取第一个tr元素的td元素列表。但是我从表中获得了所有td元素的列表。

geaixin520 回答:如何使用xpath获取孩子的孩子的名单?

tdElementsFromFirstTr = trElementFirst.xpath("//td")抢占所有td

import lxml.html as html


htmlStr = '''<table>
<tr>
<td> some data </td>
<td> other data </td>
</tr>

<tr>
<td> NO </td>
<td> OTHER NO </td>
</tr>

</table>'''

parsed = html.fromstring(htmlStr)

table = parsed.xpath("//table")
trElementFirst = table[0].xpath("tr")[0]  
tdElementsFromFirstTr = trElementFirst.xpath("td")

for each in tdElementsFromFirstTr:
    print (each.text)

输出:

some data 
other data 
本文链接:https://www.f2er.com/3139041.html

大家都在问