Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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网站解析_Java_Android_Parsing_Jsoup - Fatal编程技术网

Java 从Android网站解析

Java 从Android网站解析,java,android,parsing,jsoup,Java,Android,Parsing,Jsoup,我试图解析这个网站:特别是Comune di Partenza和Comune di Arrivo中的选项,但我做不到。代码如下: public class MainActivity extends Activity { ListView lista; static final String BLOG_URL = "http://sbaftv.superdriver.it/ro/asp/ricercaorari.asp?user=FTV1&CodProfilo=1&

我试图解析这个网站:特别是
Comune di Partenza
Comune di Arrivo
中的选项,但我做不到。代码如下:

public class MainActivity extends Activity {

    ListView lista;
    static final String BLOG_URL = "http://sbaftv.superdriver.it/ro/asp/ricercaorari.asp?user=FTV1&CodProfilo=1&VisInternet=1&visnota=0";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lista = (ListView)this.findViewById(R.id.main_lista);//recupero lista da id

        //creo ed eseguo l'asynctask
        ParsingPaginaWeb parsing = new ParsingPaginaWeb();
        parsing.execute("");
    }

    private class ParsingPaginaWeb extends AsyncTask<String,String,String> {

        ArrayList<String> titoli; //lista dei titoli
        //ArrayList<String> descrizioni; //lista delle descrizioni

        @Override
        protected void onPreExecute()
        {
            //prima di eseguire il parsing inizializzo gli arraylist
            titoli = new ArrayList<String>();
            //descrizioni = new ArrayList<String>();
        }

        @Override
        protected String doInBackground(String... params) {
            try {

                Document doc = Jsoup.connect(BLOG_URL).get(); //E' il sito dove faccio il parsing   
                // prelevo l'h3 cioè il titolo di ogni sezione e poi ciclo tutto
                Elements nodeBlogStats = doc.select("div.comunePartINI");
                for(Element sezione : nodeBlogStats)//per ogni sezione tra gli elementi ricavati prima
                {

                        titoli.add(sezione.text());
                        //descrizioni.add(descrizione);

                }
            } catch (Exception e) {
                // In caso di errore
                Log.e("ESEMPIO", "ERRORE NEL PARSING");
            }
            return null;
        }

        @Override
        protected void onPostExecute(String result)
        {
            // dopo che ho eseguito il parsing mostro i dati nella listview
            // usando il custom array adpater ParsingArrayAdapter
            ParsingArrayAdapter adapter = new ParsingArrayAdapter(MainActivity.this, titoli);
            lista.setAdapter(adapter);
        }

    }

}
公共类MainActivity扩展活动{
ListView lista;
静态最终字符串BLOG_URL=”http://sbaftv.superdriver.it/ro/asp/ricercaorari.asp?user=FTV1&CodProfilo=1&VisInternet=1&visnota=0";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lista=(ListView)this.findViewById(R.id.main_lista);//recupero lista da id
//creo ed eseguo l'asynctask
ParsingPaginaWeb解析=新建ParsingPaginaWeb();
解析。执行(“”);
}
私有类ParsingPaginaWeb扩展异步任务{
ArrayList titoli;//lista dei titoli
//ArrayList Descriptioni;//lista delle Descriptioni
@凌驾
受保护的void onPreExecute()
{
//prima di eseguire il il Izzo gli arraylist
titoli=新的ArrayList();
//descripioni=newarraylist();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
试一试{
Document doc=Jsoup.connect(BLOG_URL.get();/E'il sito dove faccio il解析
//在奥格尼岛和图托岛举行的第三届世界杯预赛
元素nodeBlogStats=doc.select(“div.comunePartINI”);
对于(元素sezione:nodeBlogStats)//根据ogni sezione tra gli elementi ricavati prima
{
titoli.add(sezione.text());
//说明i.添加(说明e);
}
}捕获(例外e){
//在卡索迪埃罗
Log.e(“ESEMPIO”、“ERRORE-NEL解析”);
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果)
{
//dopo che ho eseguito il Datti nella列表视图
//usando il自定义数组adpater ParsingArrayAdapter
ParsingarayAdapter=新的ParsingarayAdapter(MainActivity.this,titoli);
setAdapter(适配器);
}
}
}

应用程序将显示一个空活动。有什么想法吗?

那是因为您没有正确解析数据。它返回零元素。我已经修改了你的解析代码。下面的代码提取了Comune di Partenza的所有选项

在try块中使用以下代码

doc = Jsoup.connect(BLOG_URL).get();
Elements nodeBlogStats = doc.select("#comunePartINI > option");
for(Element sezione : nodeBlogStats)
{
    titoli.add(sezione.text());
}

另外,从asynctask返回结果并在onPostExecute中使用它也是一种很好的做法,而不是定义一个类的字段然后对其进行修改。

您的选择器正在尝试检索具有“comunePartINI”类属性的“div”节点。我认为您确实需要检索包含在具有“comunePartINI”id属性的“select”节点中的“option”节点:

Elements nodeBlogStats = doc.select("select#comunePartINI > option");
for(Element sezione : nodeBlogStats)//per ogni sezione tra gli elementi ricavati prima
{
    titoli.add(sezione.text());
}

问候。

是的,它很有效!!!太神了非常感谢。您认为可以解析该页面中的所有内容来创建应用程序吗?源代码中的任何可用信息都可以通过jsoup轻松解析。只要数据可用,您就可以在应用程序中以任何方式使用它。请务必检查您正在使用的网站是否存在任何侵犯版权的行为。我可以给您一些关于如何继续的建议,但任何编程内容您都只需要做。如果您发现任何问题,请在这里询问stackoverflow。您好,您能帮我解析此网页中的
标记吗?使用我的代码?使用此元素e=doc.select(“p”);更具体地说,哪个标记准确?不管怎样,我想以上内容会让你开始。