0

私はAndroidだけでなくJavaも初めてです。AndroidアプリのWebサイトから特定のデータをリストビューとして表示し、それらのデータをsqliteデータベースに保存したいのですが、Webサイトから目的のデータを取得する方法を誰か教えてもらえますか?

実際、最初から知りたいです。開始方法がわからないため、助けてください。次の質問について助けが必要です 1.データを解析するためにプロジェクトを開く方法は? 2.ビルドターゲットは何ですか?3.プロジェクトでjsoupまたはその他のプロセスを使用する方法は?

私はここではまったく新しいので、助けてください。前もって感謝します...

4

2 に答える 2

7

JSoup parse を使用できます。

どうぞhttp://jsoup.org/cookbook/

JSoup は素晴らしく、非常に効果的です。上記のリンクで良い例を見つけることができます。

まず、次を使用して解析する Web ページに接続する必要があります。

Document doc = Jsoup.connect("http://example.com/").get(); 

上記のコードは、Asynctask またはハンドラを使用して非 UI スレッドで実行してください。

次に、JSoup セレクター構文を使用してページ要素を選択できます。

たとえば、属性が に設定されたdivタグのすべてのコンテンツを選択したい場合は、次のようにするだけです。idtest

Elements divs = doc.select("div#test");

div を取得するには、次を使用してそれらを反復処理できます。

for (Element div : divs)
    System.out.println(div.text());
}

以下はスニペットの例です。

package org.jsoup.examples;

import org.jsoup.Jsoup;
import org.jsoup.helper.Validate;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

/**
 * Example program to list links from a URL.
 */
public class ListLinks {
    public static void main(String[] args) throws IOException {
        Validate.isTrue(args.length == 1, "usage: supply url to fetch");
        String url = args[0];
        print("Fetching %s...", url);

        Document doc = Jsoup.connect(url).get();
        Elements links = doc.select("a[href]");
        Elements media = doc.select("[src]");
        Elements imports = doc.select("link[href]");

        print("\nMedia: (%d)", media.size());
        for (Element src : media) {
            if (src.tagName().equals("img"))
                print(" * %s: <%s> %sx%s (%s)",
                        src.tagName(), src.attr("abs:src"), src.attr("width"), src.attr("height"),
                        trim(src.attr("alt"), 20));
            else
                print(" * %s: <%s>", src.tagName(), src.attr("abs:src"));
        }

        print("\nImports: (%d)", imports.size());
        for (Element link : imports) {
            print(" * %s <%s> (%s)", link.tagName(),link.attr("abs:href"), link.attr("rel"));
        }

        print("\nLinks: (%d)", links.size());
        for (Element link : links) {
            print(" * a: <%s>  (%s)", link.attr("abs:href"), trim(link.text(), 35));
        }
    }

    private static void print(String msg, Object... args) {
        System.out.println(String.format(msg, args));
    }

    private static String trim(String s, int width) {
        if (s.length() > width)
            return s.substring(0, width-1) + ".";
        else
            return s;
    }
}

最後ですが、リストではありません。

非同期操作を行う場合は、非 UI スレッドで実行してください。

于 2012-06-14T05:11:01.433 に答える
0

Web からデータを取得するには、さまざまな方法があります。データはjson文字列またはxmlの形式である可能性があり、どちらも解析方法が異なります

xml の解析には、SAX パーサーまたは DOM パーサーを使用できます

SAX パーサーの詳細については、このリンクを参照してください:これを試してください!!!

于 2012-06-14T06:23:21.077 に答える