这是我要分析的页面HTML的简单版本:
<table class="class_1">
<tbody>
<tr class="class_2">
<td class="class_3"> </td>
<td class="class_4"> </td>
<td class="class_5"> </td>
</tr>
<tr class="class_2">
<td class="class_3"> </td>
<td class="class_4"> </td>
<td class="class_5"><span class="class_6"></span>square</td>
</tr>
<tr class="class_2">
<td class="class_3"> </td>
<td class="class_4"> </td>
<td class="class_5"><span class="class_7"></span>circle</td>
</tr>
<tr class="class_2">
<td class="class_3"> </td>
<td class="class_4"> </td>
<td class="class_5"><span class="class_6"></span>triangle</td>
</tr>
</tbody>
</table>
您可以在以下位置找到该页面 https://sabbiobet.netsons.org/test.html
如果您尝试在Google表格中使用该功能,
= IMPORTXML(“ https://sabbiobet.netsons.org/test.html”;“ // td [@ class ='class_5']”)
我将获得:
我需要获取所有<td>
减去class="class_5"
或
的{{1}}。
换句话说,我只想获得这些值:
有人可以帮我吗?
答案 0 :(得分:1)
以下XPath表达式
//td[@class='class_5' and span and not(span[@class='class_7'])]
选择所有td
个元素,它们的属性class
的值为class_5
,有一个子元素span
而没有一个子元素span
,其中{ {1}}属性的值为class
。
请注意,您也可以使用
class_7
在这种情况下可以获得相同的结果。
答案 1 :(得分:1)
这应该有效:
//td[@class='class_5'][not(text()=' ')][not(./span[@class='class_7'])]
其中[not(text()=' ')]
不是测试规则空间,而是测试带有Unicode代码U+00A0
的符号,您可以在Windows中使用alt+0160
在键盘上输入符号,其中数字将从小键盘。