清洁看XPath表达

时间:2014-06-13 14:50:30

标签: html xpath

我有以下HTML:

<div>
  <a href="#">
    <span>Appointment Type 1</span>
    <span>Fri 1 January 2016</span>
  </a>
  <a href="#">
    <span>Appointment Type 1</span>
    <span>Sat 2 January 2016</span>
  </a>
  <a href="#">
    <span>Appointment Type 2</span>
    <span>Sat 2 January 2016</span>
  </a>
</div>

并且已经找到以下XPATH表达式来选择示例中的第3个锚点:

//a/span[contains(text(),'Appointment Type 2')]/../span[contains(text(),'Sat 2 January 2016')]/..

有没有更好的方法来编写XPATH?

提前致谢!

3 个答案:

答案 0 :(得分:2)

你可以通过索引获取第三个锚点:

//div/a[3]

或者,如果你想检查里面的span文本:

//div/a[span[1]="Appointment Type 2" and span[2]="Sat 2 January 2016"]

答案 1 :(得分:1)

我会使用//a[span[contains(., 'Sat 2 January 2016')] and ../a[span[contains(., 'Appointment Type 2')]]]。通常不需要使用text(),除非您处理混合内容并且需要处理单个文本节点。

答案 2 :(得分:1)

您可以使用:

//a[3]/span[2]/text()