Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.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 Android Jsoup,如何解析表?_Java_Android_Jsoup - Fatal编程技术网

Java Android Jsoup,如何解析表?

Java Android Jsoup,如何解析表?,java,android,jsoup,Java,Android,Jsoup,我试图从网页上抓取一张桌子,但我似乎无法让它正常工作 普里斯 阿迪斯 淘气 *Denne pris er Indberette af selskabet 我想知道桌子的价格和地址 这是我目前的代码 package com.example.android.soup; 导入android.os.Bundle; 导入android.support.v7.app.AppActivity; 导入android.view.view; 导入android.widget.TextView; 导入org.js

我试图从网页上抓取一张桌子,但我似乎无法让它正常工作


普里斯
阿迪斯
淘气

*Denne pris er Indberette af selskabet
我想知道桌子的价格和地址

这是我目前的代码

package com.example.android.soup;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.widget.TextView;
导入org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
公共void获取(视图){
串吻=”;
TextView text=(TextView)findViewById(R.id.text1234);
尝试
{
Document doc=Jsoup.parse(“http://www.fdmbenzinpriser.dk/searchprices/1/3600");
System.out.println(doc.getElementById(“list_canvas”);
}
捕获(例外e)
{
e、 printStackTrace();
}
text.setText(sNodes);
}
}
parse()将从字符串()解析文档。您向它传递了一个不是HTML字符串的URL。您必须从URL获取()数据。这就是问题所在。以下是一个工作示例:

 Document doc = Jsoup.connect("http://www.fdmbenzinpriser.dk/searchprices/1/3600").get();


      System.out.println(doc.getElementById("list_canvas"));

既然您对访问tbody标签非常感兴趣,您可以试试

final Elements tbodyElements = doc.getAllElements().first().getElementsByTag("tbody");
for( int x = 0; x < tbodyElements.size(); x++ )
{
    if( tbodyElements.get(x).attr("id").equals("list_canvas") )
    {
        // You know you are inside tbody tag, find all the td elements in it
        final Elements tdElems = tbodyElements.get(x).getElementsByTag("td");
        for( int y = 0; y < tdElems.size(); y++ )
        {
             final Element tdElem = tdElems.get(y);
             if( tdElem.attr("tablebodylogo") )
             {
                 // this will get you tags within tablebodylogo
                 final Elements childrenTDLogo = tdElem.children();
             }
             else if( tdElem.attr("tablebodyprice") )
             {

                 // this will get you tags within tablebodyprice
                 final Elements childrenTDPrice = tdElem.children();
             }                     
             else if( tdElem.attr("tablebodyaddress") )
             {

                 // this will get you tags within tablebodyaddress
                 final Elements childrenTDAddress = tdElem.children();
             }                     

             else if( tdElem.attr("tablebodydate") )
             {

                 // this will get you tags within tablebodydate
                 final Elements childrenTDDate = tdElem.children();
             }                     
        } 
    }
}
final Elements tbodyElements=doc.getAllegements().first().getElementsByTag(“tbody”);
对于(int x=0;x

参考jsoup的官方文档将极大地提高您对如何使用org.jsoup.nodes.Element和org.jsoup.select.Elements的理解,这将对您有很大帮助。这是一个用于解析html文档的神奇库,我认为它不是抓取在线html页面的最佳库。但还是希望你能得到帮助。欢迎澄清

有什么问题?系统是否打印出您期望的内容?你没有将“sNodes”设置为任何值。哦,我忘了提一下,它只是输出空值。我知道snodes没有被设置成任何东西:)嗨,我试过这个,但它似乎不起作用。这只是给了我一个错误