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

使用Jsoup处理HTML数据遇问题:移除行末TD及替换Img为文本

修正后的Jsoup处理代码

假设你已经获取到包含航班信息的Document对象,以下是实现需求的代码:

// 获取所有航班表格行(根据实际页面结构调整选择器,比如特定表格的行用"#flight-table tr")
Elements rows = doc.select("tr");

for (Element row : rows) {
    // 需求1:移除每行的最后一个TD元素
    Elements tds = row.select("td");
    if (!tds.isEmpty()) {
        tds.last().remove();
    }

    // 需求2:替换所有Img标签为其title/alt属性的文本
    Elements imgs = row.select("img");
    for (Element img : imgs) {
        // 优先取title属性,没有则用alt,都没有留空文本
        String imgText = img.hasAttr("title") ? img.attr("title") : img.attr("alt");
        // 用文本节点替换img标签,彻底移除图片元素
        img.replaceWith(new TextNode(imgText, ""));
    }

    // 给首个TD添加rel属性(属性值根据你的实际需求设置,比如航班编号)
    if (!tds.isEmpty()) {
        Element firstTd = tds.first();
        firstTd.attr("rel", firstTd.text().trim());
    }
}

// 获取处理后的HTML内容
String processedHtml = doc.html();

关键说明:

  • 移除最后一个TD:直接通过tds.last().remove()定位每行末尾的TD并移除,无需依赖id(如果你的场景中最后一个TD固定带有id="marker",可以把选择器改成row.select("td#marker").remove(),通用场景下取last()更灵活)。
  • 替换Img标签:遍历行内所有img元素,优先读取title属性值,没有则用alt,再用replaceWith()将图片标签替换为纯文本节点,完全移除img元素。
  • 添加rel属性:定位首个TD后,用attr()方法设置rel属性,属性值可根据业务需求调整(比如航班ID、唯一标识等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:15:37