使用JSoup提取表行数据不返回任何内容

时间:2016-01-20 06:06:16

标签: java jsoup

我正在尝试使用 JSoup 库提取表格行数据。但它没有给出输出结果。

  

到目前为止,这是我的代码:

String html = "<tbody>"
                + "<tr>"
                + "<td><strong>Fit</strong></td>"
                + "<td>Regular</td>"
                + "</tr>"
                + "<tr>"
                + "<td><strong>Color</strong></td>"
                + "<td>Multi</td>"
                + "</tr>"
                + "<tr>"
                + "<td><strong>Style</strong></td>"
                + "<td>Checked</td>"
                + "</tr>"
                + "<tr>"
                + "<td><strong>Fabric</strong></td>"
                + "<td>Cotton</td>"
                + "</tr>"
                + "<tr>"
                + "<td><strong>Model Stats</strong></td>"
                + "<td> This model has height 5'9\",Bust 32\",Waist 28\",Hip 36\"and is Wearing Size 10.</td>"
                + "</tr>"
                + "</tbody>";

        Document doc = Jsoup.parse(html);


        for (Element table : doc.select("tbody")) {
            for (Element row : table.select("tr")) {
                Elements tds = row.select("td");
                for (Element td : tds) {
                    System.out.println(td.text());
                }
            }
        }

如果有人能建议我如何获得如下所示的出局,将不胜感激:

<strong>Fit</strong>
Regular
<strong>Color</strong>
Multi
<strong>Style</strong>
Checked
<strong>Fabric</strong>
Cotton ... etc..

感谢。

1 个答案:

答案 0 :(得分:1)

问题在于 html 。您应该在{的开始结束处添加 <table> </table> {1}}变量,否则Jsoup将无法正确解析您的html,导致您的html转换为<tbody>,这就是您无法在查询中选择它的原因。< / p>

另外,要生成所需的输出,请使用<body>代替td.html()