什么&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&amp;p=2">
                        2
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=3">
                        3
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=4">
                        4
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=5">
                        5
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=6">
                        6
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=7">
                        7
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=8">
                        8
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=9">
                        9
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=10">
                        10
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=11">
                        11
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=12">
                        12
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=13">
                        13
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=14">
                        14
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=15">
                        15
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=16">
                        16
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=17">
                        17
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=18">
                        18
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=19">
                        19
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=20">
                        20
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=21">
                        21
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=22">
                        22
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=23">
                        23
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=24">
                        24
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=25">
                        25
                    </a>
                </li>
                <li class="current ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=26">
                        26
                    </a>
                </li>
                <li class=" ">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=27">
                        27
                    </a>
                </li>
                <li class="last">
                    <a href="/forum-replies.cfm?t=1543353&amp;p=-1&amp;#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支持。