Python/xpath获取任意元素中的文本实例
鉴于以下情况:Python/xpath获取任意元素中的文本实例,python,xpath,Python,Xpath,鉴于以下情况: <table> <tr> <td> <div>Text 1</div> </td> <td> Text 2 </td> <td> <div> <a href="#"&
<table>
<tr>
<td>
<div>Text 1</div>
</td>
<td>
Text 2
</td>
<td>
<div>
<a href="#">Text 3</a>
</div>
</td>
</tr>
<tr>
...
</tr>
</table>
根据上表,如何提取所有文本?请注意,嵌套元素的数量是任意的,因此我不能只查找第一个同级、第零个同级和第二个同级
我正在寻找一种提取文本的通用方法
In [1]: d="""<table>
...: <tr>
...: <td>
...: <div>Text 1</div>
...: </td>
...: <td>
...: Text 2
...: </td>
...: <td>
...: <div>
...: <a href="#">Text 3</a>
...: </div>
...: </td>
...: </tr>
...: <tr>
...: ...
...: </tr>
...: </table>"""
In [3]: from lxml import etree
In [4]: f = etree.HTML(d)
In [5]: f.xpath('normalize-space(string(/table))')
Out[5]: ''
In [6]: f.xpath('normalize-space(string(//table))')
Out[6]: 'Text 1 Text 2 Text 3 ...
我将使用:
normalize-space(string(/table))
@strimp099不,是根HMMM你能看到我的编辑并告诉我我做错了什么,以至于文本没有被/table拾取吗?我想这会解决你的问题//*[string length normalize space./text>0]/text