【问题标题】:Jsoup - how to find out elements sizeJsoup - 如何找出元素大小
【发布时间】:2020-04-20 04:30:35
【问题描述】:

我对 jsoup API 感到困惑。我的代码解析了一个包含 4 个单元格的表格。但是我发现了一种情况,三个单元格合并到一个单元格中,我的代码在那里失败,因为位置 3 的孩子不存在。

String sMminutesLeft = row.child(3).text();

element.child(x) 返回过滤后的子元素列表,例如只有标签,而不是文本节点。但是element.childNodesCount() 将返回包括文本节点在内的所有元素的计数。我预计是 4,但我收到了 9(包括很多换行符)。

我发现 element.getElementsByTag("TD") 返回 Elements 对象。这个对象就像一个容器,但它没有任何size() 方法。

如何安全地找出当前 TR 元素下的 TD 数量?实现NodeVisitor 对我来说似乎有点矫枉过正。

【问题讨论】:

  • 我最初选择了一种解决方法 try-catch IndexOutOfBounds,后来我意识到我可以搜索 colspan 属性。但我还是更喜欢 API 的增强。

标签: java html jsoup


【解决方案1】:

我找到了一种解决方法,但由于我觉得 API 不完整,我创建了一个拉取请求,该请求添加了一个新方法来获取与 child(int) 互补的过滤子项的数量。这里是:https://github.com/jhy/jsoup/pull/1291

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 2014-11-08
    • 2015-08-22
    相关资源
    最近更新 更多