鉴于以下HTML,XPath将选择a
锚文本与Mac / Macbooks
锚文本之间的所有More
元素?
<dd>
<ol>
<li>
<a href="http://www.shophive.com/apple?cat=9">DO NOT WANT 1</a> (164)
</li>
<li>
<a href="http://www.shophive.com/apple?cat=10">Mac / Macbooks</a> (165)
</li>
<li>
<a href="http://www.shophive.com/apple?cat=18">iPhone</a> (459)
</li>
<li>
<a href="http://www.shophive.com/apple?cat=20">iPad</a> (221)
</li>
<li>
<a href="http://www.shophive.com/apple?cat=486">Watch</a> (129)
</li>
<li>
<a href="http://www.shophive.com/apple?cat=16">iPod</a> (85)
</li>
<li>
<a href="http://www.shophive.com/apple?cat=574">More</a> (69)
</li>
<li>
<a href="http://www.shophive.com/apple?cat=575">DO NOT WANT 2</a> (70)
</li>
</ol>
</dd>
答案 0 :(得分:1)
根据内容选择,即“更多”..
这可能有用吗?这是未经测试的。
//a[.="More"]
答案 1 :(得分:1)
对字符串值使用测试来识别端点。
//a[.='Mac / Macbooks']
选择开始元素。
//a[.='More']
选择结束元素。
使用preceding and following axis选择元素 其他元素之间。
决定是否应包含或排除端点。
排除案例
//a[preceding::a[.='Mac / Macbooks'] and following::a[.='More']]
包含的案例(就像排除的案例,但通过or
添加了端点):
//a[preceding::a[.='Mac / Macbooks'] and following::a[.='More']
or .='Mac / Macbooks'
or .='More']
请注意,XPath没有following-or-self
和preceding-or-self
轴,所以我们明确添加端点。
排除案例的结果为:
<a href="http://www.shophive.com/apple?cat=18">iPhone</a>
<a href="http://www.shophive.com/apple?cat=20">iPad</a>
<a href="http://www.shophive.com/apple?cat=486">Watch</a>
<a href="http://www.shophive.com/apple?cat=16">iPod</a>
包含案例的结果为:
<a href="http://www.shophive.com/apple?cat=10">Mac / Macbooks</a>
<a href="http://www.shophive.com/apple?cat=18">iPhone</a>
<a href="http://www.shophive.com/apple?cat=20">iPad</a>
<a href="http://www.shophive.com/apple?cat=486">Watch</a>
<a href="http://www.shophive.com/apple?cat=16">iPod</a>
<a href="http://www.shophive.com/apple?cat=574">More</a>
请注意,在这两种情况下,返回的结果都是按文档顺序排列的。