css - 包含类、子级和相邻同级选择器的 CSS 选择器的等效 XPath 是什么?

标签 css xpath css-selectors

我有这个:

li.current+li>a

但是我只有 XPath 的基本知识。 我需要它用于 AutoPager Firefox 扩展。

我也想只获得第一场比赛。

最佳答案

如果您的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

我用Online XPath 2 evaluator测试了它使用以下 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>

您应该注意,您作为输入链接到的页面 - http://forums.whirlpool.net.au/forum-replies.cfm?t=1543353&p=26 - 是 HTML,不是 XML:

  • 其文档类型声明适用于 HTML 4.01
  • 文档包含未封闭的标签,例如 <br>这必须是 <br />

...因此您在使用它作为 XPath 评估的输入时可能会遇到问题。

关于css - 包含类、子级和相邻同级选择器的 CSS 选择器的等效 XPath 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5338933/

相关文章:

python - Scrapy选择器返回None时如何设置默认值

python - 使用 css 选择器查找标签,但不查找其后代

javascript - 如何在文本框旁边放置 span 标签内容

html - 水平居中 iframe

php - 同一页面中的多个帖子部分

php - foreach循环内的xpath重复相同的结果

html - 使用 xpath 将解析后的 html 写入 R 中的文件

CSS :last-child:not(:only-child) not working as expected

html - CSS Sprite 背景和选择器

iphone - 如何使网站适应手机和 iPad 屏幕的大小?