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

基于Class属性定位HTML<tr>元素失败的技术求助

解决Jsoup中元素class判断失效的问题

你遇到的核心问题是Java中字符串比较的方式错误,再加上可能忽略了class属性的灵活匹配场景,我来一步步帮你搞定:

1. 为什么==判断会一直返回false?

在Java里,==是用来比较两个对象的内存引用地址,而不是字符串的实际内容。虽然tableRow.className()返回的内容看起来是"oddRow cellCont",但它和你写的字面量字符串可能不是同一个对象实例,所以用==比较永远会不相等。

正确的做法是用字符串的equals()方法来匹配内容:

if (tableRow.className().equals("oddRow cellCont")) {
    // 这里写你的业务逻辑
}

2. 更健壮的class匹配方案

如果页面渲染时class的顺序可能变化(比如偶尔变成cellCont oddRow),或者存在多余的空格,上面的equals()也会失效。这时候推荐用Jsoup内置的hasClass()方法,它可以单独检查某个class是否存在,容错性更强:

// 同时检查两个class是否都存在
if (tableRow.hasClass("oddRow") && tableRow.hasClass("cellCont")) {
    // 这里写你的业务逻辑
}

3. 额外调试小技巧

如果还是有问题,可以先打印出class的实际值和长度,排查是否有隐藏的空格或特殊字符:

String actualClass = tableRow.className();
System.out.println("实际class值:'" + actualClass + "',长度:" + actualClass.length());

这样能帮你快速定位是否有肉眼看不到的字符导致匹配失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:03:12