Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在androidstudio中解析HTML表_Java_Android_Html_Html Parsing_Jsoup - Fatal编程技术网

Java 在androidstudio中解析HTML表

Java 在androidstudio中解析HTML表,java,android,html,html-parsing,jsoup,Java,Android,Html,Html Parsing,Jsoup,我正在为一个研究项目处理大量数据。我有一个通过Jsoup加载的html文件,但问题是我需要评估的表没有Id或类。我已经搜索了堆栈,但我似乎没有找到一个答案,即如何访问每个,并从其中获取信息 <table> <tr> <td align="center">inf1</td> <td align="center">date</td> <tdalign="center"

我正在为一个研究项目处理大量数据。我有一个通过Jsoup加载的html文件,但问题是我需要评估的表没有Id或类。我已经搜索了堆栈,但我似乎没有找到一个答案,即如何访问每个
,并从其
中获取信息

<table>
    <tr>
        <td align="center">inf1</td>
        <td align="center">date</td>
        <tdalign="center">time</td>
        <td align="center">group</td>
        <td  align="center">name</td>
        <td align="center">---</td>
        <td align="center">room</td>
        <td align="center">---</td>
        <td align="center">---</td>
        <td> </td>
        <tdalign="center">reason</td>
        <td align="center"> </td>
    </tr> 
</table>

inf1
日期
时间
组
名称
---
房间
---
---
原因
(空的
“--”
仅用于在此表中显示,对我的项目没有任何价值)

我需要按组对每个
(结构相同)进行排序,并使用链接到它们的其他数据进行inf1,以便在android Studio项目中使用这些数据,它们将以不同的方式显示


提前感谢您的帮助:)

您可以使用Jsoup CSS选择器和实现Compariable的自定义类来保存记录。大概是这样的:

String html = ""
        +"<table>"
        +"    <tr>"
        +"        <td align=\"center\">inf1</td>"
        +"        <td align=\"center\">date</td>"
        +"        <td align=\"center\">time</td>"
        +"        <td align=\"center\">group1</td>"
        +"    </tr> "
        +"</table>"
        +"<table>"
        +"    <tr>"
        +"        <td align=\"center\">inf1</td>"
        +"        <td align=\"center\">date</td>"
        +"        <td align=\"center\">time</td>"
        +"        <td align=\"center\">group0</td>"
        +"    </tr> "
        +"</table>"
        +"<table>"
        +"    <tr>"
        +"        <td align=\"center\">inf2</td>"
        +"        <td align=\"center\">date</td>"
        +"        <td align=\"center\">time</td>"
        +"        <td align=\"center\">group0</td>"
        +"    </tr> "
        +"</table>"
        ;

Document doc = Jsoup.parse(html);
class TableRecord implements Comparable<TableRecord>{
    public String inf = "";
    public String grp = "";

    @Override
    public int compareTo(TableRecord arg0) {
        int cmpGrp = arg0.grp.compareTo(this.grp);
        if (cmpGrp==0){
            return arg0.inf.compareTo(this.inf);
        }
        return cmpGrp;
    }

    @Override
    public String toString(){
        return "grp="+grp+":inf="+inf;
    }
}
List<TableRecord> tableRecords = new ArrayList<>();
Elements trs = doc.select("table tr");
for (Element tr : trs){
    Elements tds = tr.select("td");
    TableRecord tableRecord = new TableRecord();
    tableRecord.inf = tds.get(0).text();
    tableRecord.grp = tds.get(3).text();

    tableRecords.add(tableRecord);
}

Collections.sort(tableRecords);
for (TableRecord tableRecord:tableRecords){
    System.out.println(tableRecord);
}
String html=“”
+""
+"    "
+“inf1”
+“日期”
+“时间”
+“第一组”
+"     "
+""
+""
+"    "
+“inf1”
+“日期”
+“时间”
+“组0”
+"     "
+""
+""
+"    "
+“inf2”
+“日期”
+“时间”
+“组0”
+"     "
+""
;
Document doc=Jsoup.parse(html);
类TableRecord实现了可比较的{
公共字符串inf=“”;
公共字符串grp=“”;
@凌驾
公共整数比较(TableRecord arg0){
int cmpGrp=arg0.grp.compareTo(this.grp);
如果(cmpGrp==0){
返回arg0.inf.compareTo(this.inf);
}
返回cmpGrp;
}
@凌驾
公共字符串toString(){
返回“grp=“+grp+”:inf=“+inf;
}
}
List tableRecords=new ArrayList();
元素trs=文件选择(“表tr”);
用于(元件tr:trs){
元件tds=tr.select(“td”);
TableRecord TableRecord=新的TableRecord();
tableRecord.inf=tds.get(0.text();
tableRecord.grp=tds.get(3.text();
tableRecords.add(tableRecord);
}
收集.分类(表格记录);
for(TableRecord TableRecord:tableRecords){
系统输出打印LN(表格记录);
}

表格结构是否固定?我的意思是inf1
td
总是第一组,第四组吗?是的,结构是固定的,它们总是处于相同的位置