Html 外观更干净的XPath表达式
我有以下HTML:Html 外观更干净的XPath表达式,html,xpath,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
<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
提前谢谢 只需通过索引获取第三个锚点即可:
//div/a[3]
或者,如果要检查内部的span
文本:
//div/a[span[1]="Appointment Type 2" and span[2]="Sat 2 January 2016"]
只需通过索引获取第三个锚点即可:
//div/a[3]
或者,如果要检查内部的span
文本:
//div/a[span[1]="Appointment Type 2" and span[2]="Sat 2 January 2016"]
我将使用
//a[span[包含(,'2016年1月2日星期六')]和../a[span[包含(,'约会类型2')]]
。通常不需要使用text()
,除非您处理混合内容并需要处理单个文本节点。我将使用//a[span[包含(,'2016年1月2日星期六')]和../a[span[包含(,'约会类型2')]
。通常不需要使用text()
,除非您处理混合内容并需要处理单个文本节点。您可以使用:
//a[3]/span[2]/text()
您可以使用:
//a[3]/span[2]/text()
这完全取决于文档的哪些部分,您可以考虑到足够的不变量,以便使用它来设置初始上下文。它可能是一个位置,但通常是一个id,或相邻节点的某个模式,只出现一次的东西,甚至是始终存在的字符串。一旦知道了上下文,就可以添加额外的步骤和谓词来精确地过滤所需的内容。这取决于文档的哪些部分可以考虑到足够的不变量,以便可以设置初始上下文。它可能是一个位置,但通常是一个id,或相邻节点的某个模式,只出现一次的东西,甚至是始终存在的字符串。一旦您了解了上下文,您就可以添加额外的步骤和谓词来准确地过滤您需要的内容。