1

我环顾了堆栈溢出,发现了以下帖子:

https://stackoverflow.com/questions/7864433/how-to-parse-the-cells-of-the-3rd-column-of-a-table https://stackoverflow.com/questions/7864433/how-to-解析表中第三列的单元格

但我还是有点困惑。

我所拥有的是一个 html 表,其中包含在<tbody>标签内具有不同日期的其中一些:

            <tr>
                <td>
                    <nobr>Fri</nobr>
                </td>
                <td>
                    <nobr>Sep 20</nobr>
                </td>
                <td>
                    <nobr>4:00 PM</nobr>
                </td>
                <td>
                    Practice                </td>
            </tr>

表的 id 是“ gymschedule ”。

到目前为止,我可以使用 JSoup 获取表格,并且可以使用 JSoup 在 web 视图中显示它。

我需要的是在第二个中获取第二个的文本,并对表中的每一组其他标签<nobr><td><tr>执行此操作。

4

1 回答 1

2

我完全不知道原始来源的样子,但这应该可以。

您可以使用 CSS 选择器选择文档中的特定标签,并使用伪选择器指定它们应具有的属性。

如果您只想选择<tr>多个序列中的第一个 -tags,则可以使用tr:eq(0)选择器。

在你的情况下,你最终会得到类似的东西:

    doc = Jsoup.parse(html, "", Parser.xmlParser());
    Elements elements = doc.select("tr td:eq(1) nobr");
    for (Element e : elements) {
        System.out.println(e.text()); 
    }

这将打印出来

Sep 20

由于我不知道您的完整源代码是什么样的,您可能可以使用默认的 HTML parser Jsoup.parse(html);,尽管这不适用于您提供的代码段。

其他伪选择器的示例可能是

:lt(0) //Less than
:gt(0) //Greater than

我建议您阅读有关使用选择器语法的内容。

使用选择器语法查找元素

于 2013-10-07T21:33:36.253 回答