java - Jsoup - 从Java中的表中解析数据

标签 java parsing jsoup

我正在尝试制作一个解析器来获取已出现的最新 SQL 版本(仅限构建版本)。 他收到一个错误,以及他不需要的其他文本。 我做错了什么?

Document doc = Jsoup.connect("https://buildnumbers.wordpress.com/sqlserver/").get();
Elements trs = doc.select("tr");

//remove header row
trs.remove(0);

for (Element tr : trs) {
            Elements tds = tr.getElementsByTag("td");
            Element td = tds.last();
            System.out.println(td.text());
}

enter image description here

最佳答案

您需要使用String::substring删除每个文本末尾的 (...) 。此外,您还错过了程序中各处的 null 检查。

按如下方式进行:

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Main {
    public static void main(String[] args) throws IOException {
        Document doc = Jsoup.connect("https://buildnumbers.wordpress.com/sqlserver/").get();
        Elements trs = doc.select("tr");

        // remove header row
        trs.remove(0);

        String text;
        int i;
        for (Element tr : trs) {
            Elements tds = tr.getElementsByTag("td");
            Element td;
            if (tds != null) {
                td = tds.last();
                if (td != null) {
                    text = td.text();
                    if (text != null) {
                        i = text.indexOf("(");
                        if (i != -1) {
                            System.out.println(text.substring(0, i).trim());
                        }
                    }
                }
            }
        }
    }
}

输出:

15.0.4013.40
14.0.3281.6
13.0.5698.0
...
...
...
SSMS 16.4
SSMS 16.3

关于java - Jsoup - 从Java中的表中解析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60566473/

相关文章:

java - 在 Java 中通过多个请求终止线程?

parsing - 如何在 Parsec ParserT monad 中表达解析逻辑

java - Jsoup Java HTML 解析器 : Executing Javascript events

java - 使用 java 反射访问静态嵌套类字段的字段抛出 NullPointerException

java - 永远计算和覆盖 hashCode 是一个好习惯吗

java - 带有条件运算符(三元运算符)但不是 if else 的空指针异常

python - 在 Pandas 中解析多索引 Excel 文件

javascript - 在 IE 中加载和解析 XML

JSOUP 仅解析 <HEAD> 内容并忽略其余 HTML(需要快速解析)

Android:如何让应用程序在所有 Android 手机上运行