XPATH OR运算符没有看到

时间:2013-11-04 13:50:26

标签: xpath

我正在尝试使用OR运算符,我想要任何一个表达式。

表达工作个人但不在一起你可以帮忙,请看下面

//*[[@class='eline'][1]/following-sibling::tr] OR [[@class='eline'][1]]

嗨,

下面是一个更好的例子,所以我对你的第一个解决方案感到满意,因为这选择了所有内容但我想选择alt =“Ab”的元素,因为这个元素位置可能会改变所以我希望xpath是尽可能动态

<tr class="eline">
<tr>
<td class="norm" nowrap=""/>
<td class="norm" nowrap="">
<td class="norm" nowrap="">
<td class="norm" nowrap="">cccc cccc </td>
<td class="norm" nowrap="">99999 </td>
<td class="norm" nowrap=""/>
<td>
<td class="norm" nowrap="">
<img width="20" vspace="0" border="0" hspace="0" height="15" alt="Ab" name="abs3" src="images/sp_abs.gif"/>
</td>
<td class="norm" nowrap="">
<td class="norm" nowrap="">testcase33 testcase33 </td>
<td class="norm" nowrap="">33100 </td>
<td class="norm" nowrap=""/>
<td class="norm" nowrap=""/>
</tr>
<tr class="eline">
<tr>
<tr class="eline">
<tr>
<tr>

1 个答案:

答案 0 :(得分:1)

你试图选择:

  • 具有class属性eline
  • 的第一个元素
  • 以下所有兄弟tr元素

最简单的方法是组合使用union |运算符工作的两个选择器:

//*[@class='eline'][1]/following-sibling::tr | //*[@class='eline'][1]

例如,使用此XML:

<table>
    <tr name="first"/>
    <tr class="eline" />
    <tr name="third"/>
    <tr name="fourth"/>
</table>

上面的XPath将给出

<tr class="eline"/>
<tr name="third"/>
<tr name="fourth"/>

假设你想从上面的代码选择的元素中找到一个元素img[@alt="Ab"],你可以这样做:

(//*[@class='eline'][1]/following-sibling::tr | //*[@class='eline'][1]) // img[@alt="Ab"]