Xpath如何从后代节点获取文本
Xpath how to get text from descendant nodes
我有这样的东西:
<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>
content。
我也试过这个:ch_nodes=tree.xpath('//div[@id="%s"]/table[@class= "fl"]/tr/td[3]/descendant-or-self::*[2]'%div)
但如果没有子节点,则不会给我自我满足。
我怎样才能得到['Radio','TV Channel',' ','Other channel]
?
从tr
获取每个第一个文本节点:
$x("//table//tr//*[1]/text()")
如果您想从 tr
获取每个第一个非空文本节点:
$x("//table//tr//*[boolean(string-length(normalize-space(text())))][1]/text()")
我有这样的东西:
<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>
content。
我也试过这个:ch_nodes=tree.xpath('//div[@id="%s"]/table[@class= "fl"]/tr/td[3]/descendant-or-self::*[2]'%div)
但如果没有子节点,则不会给我自我满足。
我怎样才能得到['Radio','TV Channel',' ','Other channel]
?
从tr
获取每个第一个文本节点:
$x("//table//tr//*[1]/text()")
如果您想从 tr
获取每个第一个非空文本节点:
$x("//table//tr//*[boolean(string-length(normalize-space(text())))][1]/text()")