java - XPath 表达式获取另一个元素之后的元素

标签 java xpath jwebunit

我有以下结构:

<html>
<head>
<title>Index of /</title>
</head>
<body>
    <h1>Index of /</h1>
    <pre>
        <img src="/icons/blank.gif" alt="Icon "> <a href="?C=N;O=D">Name</a>                    <a
            href="?C=M;O=A">Last modified</a>      <a href="?C=S;O=A">Size</a>  <a
            href="?C=D;O=A">Description</a>
        <hr>
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="berta.ear/">berta.ear/</a>          23-Sep-2014 13:17    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="egon.ear/">egon.ear/</a>          24-Oct-2014 16:04    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton01.ear/">anton01.ear/</a>             18-Dec-2014 12:03    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton02.ear/">anton02.ear/</a>             18-Dec-2014 08:38    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton03.ear/">anton03.ear/</a>             18-Dec-2014 11:43    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton04.ear/">anton04.ear/</a>             05-Dec-2014 16:02    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton05.ear/">anton05.ear/</a>             15-Sep-2014 19:22    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton06.ear/">anton06.ear/</a>             17-Dec-2014 10:50    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton07.ear/">anton07.ear/</a>             10-Dec-2014 13:02    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton08.ear/">anton08.ear/</a>             15-Dec-2014 09:30    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton09.ear/">anton09.ear/</a>             18-Dec-2014 08:47    -   
        <img src="/icons/folder.gif" alt="[DIR]"> <a href="anton10.ear/">anton10.ear/</a>             18-Dec-2014 11:11    -   
        ....
        </pre>

所以现在我正在尝试获取 <a href=... 的信息但仅适用于那些遵循 <img src=".." alt="[DIR]">... 的人

所以我创建了一个如下所示的 XPath:

tester.getElementsByXPath("/html/body/pre/*[self::img[@alt='[DIR]']]");

上面只会给我 <img ...>元素。但我需要的是 <a href=""..>元素。

有人知道我做错了什么吗?

最佳答案

您可以使用following-sibling选择器获取下一个a sibling :

/html/body/pre/*[self::img[@alt='[DIR]']]/following-sibling::a

关于java - XPath 表达式获取另一个元素之后的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27549295/

相关文章:

java - jdbc 驱动程序中是否有从 java.sql 类型转换为正确的 sql 字符串的方法?

java - 无限字长抽象

Scala 中的 Java 生产者和消费者模型

java - 断言部分文本

testing - htmlunit 与带有 htmlunit 插件的 jwebunit

java - 一个非常简单的 java 程序出现问题,无法显示正确的结果

xml - 我如何让 Nokogiri 了解我的 namespace ?

xml - 如何在xsl:apply-templates select属性中使用或声明?

java - 禁用 HttpClient 日志记录