如何选择包含<tr>
和ccc
的元素的父ddd
,而不选择其他元素?
即。来自以下XML:
<table>
<tr>
<td>aaa</td>
<td>bbb</td>
<td>select</td>
</tr>
<tr>
<td>ddd</td>
<td>ccc</td>
<td>select</td>
</tr>
<tr>
<td>ccc</td>
<td>ddd</td>
<td>select</td>
</tr>
<tr>
<td>aaa</td>
<td>ccc</td>
<td>select</td>
</tr>
</table>
选择此行:
<tr>
<td>ccc</td>
<td>ddd</td>
<td>select</td>
</tr>
或者,如何在td
的同一行td
&amp;上选择第三个ccc
(其中包含选择)。 ddd
?
答案 0 :(得分:3)
XPath表达式包含多个位置步骤。每个步骤都为谓词([...]
内)或后续步骤创建上下文。 last 步骤包含有效选择的结果集。您可以在任何步骤中应用一个或多个谓词,以减少设置。
此表达式选择包含tr
元素的td
元素,其中字符串值为aaa
,td
元素的字符串值为bbb
//tr[td='aaa' and td='bbb']
此表达式将从第二个和第三个td
(包含<td>select</td>
的节点中选择包含两个<tr>
节点(td='ccc' and td='ddd'
)的集 1}}:
//tr[td='ccc' and td='ddd']/td[3]
您也可以堆叠谓词,而不是使用和。每个谓词都会减少结果集,从而创建后续谓词运行的上下文。这与上面的表达式具有相同的效果:
//tr[td='ccc'][td='ddd']/td[3]