什么&x2019;对于包含类、子级和相邻同级选择器的CSS选择器,是否有等效的XPath?
我有这个:什么&x2019;对于包含类、子级和相邻同级选择器的CSS选择器,是否有等效的XPath?,css,xpath,css-selectors,Css,Xpath,Css Selectors,我有这个: li.current+li>a 然而,我只有XPath的基本知识。 我需要它用于AutoPager Firefox扩展 我还想只获得第一个匹配项。li.current+li>a映射到: //li[@class='current']/following-sibling::*[1]/self::li/a 如果要选择第一个子元素,CSS选择器应为: li.current + li > a:first-child 其中映射到: //li[@class='current']/
li.current+li>a
然而,我只有XPath的基本知识。
我需要它用于AutoPager Firefox扩展
我还想只获得第一个匹配项。
li.current+li>a
映射到:
//li[@class='current']/following-sibling::*[1]/self::li/a
如果要选择第一个子元素,CSS选择器应为:
li.current + li > a:first-child
其中映射到:
//li[@class='current']/following-sibling::*[1]/self::li/a[1]
如果你的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
引文:
我使用以下XML对其进行了测试:
<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>
消费使用应用程序支持线程#2-应用程序-iPhone-惠而浦论坛
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
您应该注意,作为输入链接到的页面是HTML,而不是XML:
- 它的doctype声明是针对HTML4.01的
- 文档包含未关闭的标记,如
,必须是
。。。因此,使用它作为XPath计算的输入可能会有问题。我已经看过了,但是如何获得下一个兄弟姐妹?如何获得第一个匹配?我有//[li[@class='current']/以下兄弟姐妹::li[1]/aThanks,但它仍然匹配2,而不是第一个。以这个页面为例:我正在使用它进行HTML。我确实可以工作,并且不管类是用空格分隔的,空格都会被忽略。但是我希望XPath只选择第一个匹配项。你是说只有第一个子元素吗?因为你还需要更改CSS选择器。不只是整个XPath查询的第一个匹配项。@Alejandro-格式化/突出显示使XPath看起来很奇怪;第一行看起来像一条注释……我将使用单行和多行格式。我认为滚动对可读性最差。此外,我们将空格处理作为XPath的一个功能…@Alejandro-同意;真的我不同意比如SO语法突出显示是如何处理多行XPath的……我想知道是否有办法强制语法突出显示使用特定的规则集?就是这样。目前还没有XPath支持。