【问题标题】:HTML table id and class idHTML 表 id 和类 id
【发布时间】:2012-08-19 11:24:26
【问题描述】:

如何在以下 url 中找到大表的 Table id:http://en.wikipedia.org/wiki/States_and_territories_of_India

我可以看到课程wikitable sortable jquery-tablesorter

这是包含印度各州列表的表格。我能够从萤火虫确认此表 = wikitable sortable jquery-tablesorter 具有状态列表。如何获取该表的 ID?

获取该表中所有名称的 CSS 等效项是什么?

我只想获取州...第一列。我正在使用jsoup

【问题讨论】:

  • 您可以使用“检查元素”来查看任何 HTML 元素的属性。但是,此表似乎没有 ID。不知道你对最后一个问题的意思; CSS 不是查询语言。
  • 我没有找到任何类 wikitable sortable jquery-tablesorter 的元素,只有 wikitable sortable。此外,如果表没有 ID,您将无法获取 ID。
  • wikitable sortable jquery-tablesorter 是三个不同的类。
  • 在我看来,您需要一个 CSS 选择器,能够使用 <caption><big>States of India</big></caption> 设置表格中的状态样式。这就是你想要做的吗?

标签: java html css jsoup


【解决方案1】:

如果这仍然是悬而未决的问题,您可以通过以下方式获取印度的州列表:

public static void main(String[] args) throws IOException
    {

        Document doc = Jsoup.connect("http://en.wikipedia.org/wiki/States_and_territories_of_India").get();

        Elements tables = doc.select("table");

        for (Element table : tables) {
            Element tableCaption = table.getElementsByTag("big").first();
            if (tableCaption != null && tableCaption.text().equals("States of India")) {
                Document statesDoc = Jsoup.parse(table.toString());
                Elements states = statesDoc.select("tr td:eq(0)");
                for (Element state : states) {
                    System.out.println(state.text().replaceAll("\\[\\d\\]", ""));
                }
            }
        }

    }

【讨论】:

    【解决方案2】:

    那张桌子上没有 ID。如果您想获取具有“wikitable”类的表的内容。将此代码使用Jsoup

    package com.main;
    
    import java.io.IOException;
    
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.select.Elements;
    
    public class Main {
        public static void main (String args[]){
            Document doc;
            try {
    
                doc = Jsoup.connect("http://en.wikipedia.org/wiki/States_and_territories_of_India").get();
                Elements newsHeadlines = doc.select("table.wikitable").get(0).select("td:eq(0) a");
    
                System.out.println(newsHeadlines.html());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    }
    

    【讨论】:

    • 这不起作用我没有拿到桌子。我只想得到州..第一个 coum
    • 在这种情况下,您应该更新您的问题。查看我的新代码
    【解决方案3】:

    所以看起来您正在尝试截屏此表。

    你的问题的答案是在那个特定的<table> 上没有没有 id

    开始表格的html是:

    <table class="wikitable sortable jquery-tablesorter" style="width:70%;">
    

    如您所见,该元素没有 id 属性。

    您使用哪些库来解析 HTML?在 JavaScript 中,您可以使用 document.getElementsByClassName('wikitable')[0] 并在页面上唯一地找到它。但是您将使用的语法取决于您可以使用哪种 HTML DOM 遍历。

    【讨论】:

    • 是的,你是对的,我正在尝试做屏幕截图。我正在使用 JSOUP
    • 但我仍然有问题
    • @TheLearner 我更新了你的问题,以表明你正在使用和希望做什么。
    【解决方案4】:

    id 元素是可选的;并非页面上的每个元素都有一个。这个表没有。

    【讨论】:

      【解决方案5】:

      使用 JQuery。你想要第一个带有类 wikitable sortable jquery-table-sorter 的表。

      $(".wikitable.sortable.jquery-table-sorter").first()
      

      虽然,css 类可能随时更改,所以我不会依赖它。让可以编辑 wiki 页面的人为所有表格添加一个 id 可能是值得的。

      【讨论】:

        猜你喜欢
        • 2012-03-01
        • 2019-01-06
        • 2010-10-23
        • 1970-01-01
        • 2012-08-05
        • 2015-10-13
        • 2011-03-04
        • 2012-06-14
        • 2015-03-07
        相关资源
        最近更新 更多