如何使用 xpath 获取 children 的 children 列表?

How to get list of childrens of children using xpath?

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

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

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

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

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

我只想获取第一个 tr 元素的 td 元素列表。但是我从 table.

得到了所有 td 元素的列表

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