为了账号安全,请及时绑定邮箱和手机立即绑定

Xpath如何从后代节点获取文本

Xpath如何从后代节点获取文本

慕婉清6462132 2021-11-23 16:35:45
我有这样的事情:<div id="m0">... <tr>  <td></td>  <td></td>  <td>Radio</td> </tr></div><div id="m1">...<tr>  <td></td>  <td></td>  <td>     <a>TV channel</a>    <font color="#555555">...</font>  </td></tr><tr>  <td></td>  <td></td>  <td>     <i> </i>  </td></tr><tr>  <td></td>  <td></td>  <td>      <i> Other channel </i>  </td></tr>我想得到这个结果: ['Radio','TV Channel',' ','Other channel]我试过这样做: ch_nodes=tree.xpath('//div[@id="%s"]/table[@class= "fl"]/tr/td[3]/descendant-or-self::*'%div)之后,对于每个节点,我都会得到文本,但它给了我不想要的节点,例如<font>内容。我也试过这个:ch_nodes=tree.xpath('//div[@id="%s"]/table[@class= "fl"]/tr/td[3]/descendant-or-self::*[2]'%div)但是如果没有子节点,它不会给我自我内容。我怎样才能得到['Radio','TV Channel',' ','Other channel]?
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

tr以下位置获取每个第一个文本节点:

$x("//table//tr//*[1]/text()")

如果您想从以下位置获取每个第一个非空文本节点tr

$x("//table//tr//*[boolean(string-length(normalize-space(text())))][1]/text()")


查看完整回答
反对 回复 2021-11-23
  • 1 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信