You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java的jsoup库提取HTML标签中的href、文本及日期数据

Jsoup提取Alfresco目录列表字段实现方案

前提说明

Alfresco WebDAV返回的目录列表HTML默认采用表格布局,每一行对应一个目录/文件条目,首列存放带链接的资源名称,专门的日期列存放修改时间,以下代码基于该通用结构编写,若你的实际HTML列顺序有差异,调整列索引即可适配。

依赖引入(Maven示例)

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.3</version>
</dependency>

核心实现代码

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class AlfrescoDirParser {
    public static void main(String[] args) throws IOException {
        // 方式1:解析本地存储的HTML字符串
        String html = "你的Alfresco目录HTML代码内容";
        Document doc = Jsoup.parse(html);

        // 方式2:直接请求WebDAV地址解析,替换为实际地址,需认证可在header中加Authorization参数
        // Document doc = Jsoup.connect("http://你的服务地址/alfresco/webdav/rep/")
        //         .header("Authorization", "Basic 你的认证串")
        //         .get();

        List<Map<String, String>> resultList = new ArrayList<>();
        // 选择表格所有行,跳过第一行表头,可替换为更精准的选择器适配你的页面结构
        Elements rows = doc.select("table tr:gt(0)");

        for (Element row : rows) {
            // 提取a标签相关字段,默认a在第一列,可调整td索引适配实际结构
            Element link = row.selectFirst("td:first-child a");
            if (link == null) {
                continue; // 跳过无有效链接的行
            }
            String href = link.attr("href");
            String name = link.text();

            // 提取修改日期,默认日期在第二列,可调整索引适配实际结构
            String modifyDate = row.select("td").get(1).text();

            // 存入结果集
            Map<String, String> item = new HashMap<>();
            item.put("href", href);
            item.put("name", name);
            item.put("modifyDate", modifyDate);
            resultList.add(item);
        }

        // 打印验证结果
        for (Map<String, String> item : resultList) {
            System.out.println("资源链接:" + item.get("href"));
            System.out.println("资源名称:" + item.get("name"));
            System.out.println("修改时间:" + item.get("modifyDate"));
            System.out.println("------------------------");
        }
    }
}

适配调整说明

  • 如果目标表格有专属id或class,将table tr:gt(0)替换为更精准的选择器,比如table#dirList tr:gt(0),避免匹配到页面其他无关表格
  • Basic认证场景下,可先将用户名:密码做Base64编码,拼接为Basic 编码结果填入header的Authorization字段即可

内容的提问来源于stack exchange,提问作者user15973370

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:24:04