我有这样的:包含类,子和邻接兄弟选择器的CSS选择器的等效XPath是什么?
li.current+li>a
但是我只有的XPath的基本知识。 我需要它为AutoPager Firefox扩展。
我也想只得到第一场比赛。
我有这样的:包含类,子和邻接兄弟选择器的CSS选择器的等效XPath是什么?
li.current+li>a
但是我只有的XPath的基本知识。 我需要它为AutoPager Firefox扩展。
我也想只得到第一场比赛。
li.current + li > a
映射到:
//li[@class='current']/following-sibling::*[1]/self::li/a
如果你要选择的第一a
子元素,你的CSS选择应该是:
li.current + li > a:first-child
映射到:
//li[@class='current']/following-sibling::*[1]/self::li/a[1]
谢谢,但它仍然匹配2而不是第一个。 – Steven 2011-03-17 12:37:47
我可以看到你的XML吗? – melhosseiny 2011-03-17 12:43:53
转发此页:http://forums.whirlpool.net.au/forum-replies.cfm?t=1543353&p=26我将它用于HTML。 – Steven 2011-03-17 12:45:12
如果你的li
属于很多类,那么...
//li[contains(concat(' ',normalize-space(@class),' '),' current ')]/following-sibling::*[1]/self::li/a
这里是打散了许多线为清楚起见,同样的事情:
//li[contains(
concat(' ',normalize-space(@class),' '),
' current '
)
]/following-sibling::*[1]/self::li/a
引文:http://pivotallabs.com/users/alex/blog/articles/427-xpath-css-class-matching
我使用下面的XML与Online XPath 2 evaluator测试它:
<html>
<head>
<title>
Consume usage app support thread #2 - Apps - iPhone - Whirlpool Forums
</title>
</head>
<body>
<div id="root">
<ul id="top_pagination" class="pagination ">
<li class="first">
<a href="/forum-replies.cfm?t=1543353">
first: 5 months ago
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353">
1
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=2">
2
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=3">
3
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=4">
4
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=5">
5
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=6">
6
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=7">
7
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=8">
8
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=9">
9
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=10">
10
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=11">
11
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=12">
12
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=13">
13
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=14">
14
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=15">
15
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=16">
16
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=17">
17
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=18">
18
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=19">
19
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=20">
20
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=21">
21
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=22">
22
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=23">
23
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=24">
24
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=25">
25
</a>
</li>
<li class="current ">
<a href="/forum-replies.cfm?t=1543353&p=26">
26
</a>
</li>
<li class=" ">
<a href="/forum-replies.cfm?t=1543353&p=27">
27
</a>
</li>
<li class="last">
<a href="/forum-replies.cfm?t=1543353&p=-1&#bottom">
last: 2 hours ago
</a>
</li>
</ul>
</div>
</body>
</html>
您应该注意,您链接的页面作为您的输入 - http://forums.whirlpool.net.au/forum-replies.cfm?t=1543353&p=26 - 是HTML,而不是XML:
<br>
它必须是<br />
...所以你可能有使用它作为XPath评估的输入的问题。
+1正确答案。 – 2011-03-17 16:40:24
@Ajjandro - 格式/突出显示使XPAth看起来很奇怪;第一行看起来像是一条评论......我要把单线和多线两种格式。 – 2011-03-17 17:11:33
我认为滚动是可读性最差的。此外,我们采取空白处理作为XPath的功能... – 2011-03-17 17:39:41
http://xpath.alephzarro.com/content/cheatsheet.html – 2011-03-17 12:24:57
我已经看过,但你如何得到下一个兄弟姐妹? – Steven 2011-03-17 12:27:30
以下 - 兄弟姐妹? – 2011-03-17 12:29:23