0

我是 android 和 java 的新手。我想在我的 android 应用程序中显示来自网站的特定数据作为列表视图,然后将这些数据保存到 sqlite 数据库。谁能告​​诉我如何从网站获取所需的数据?

实际上我想从一开始就知道。因为我不明白如何开始。请帮助我。我需要以下问题的帮助 1.如何打开一个解析数据的项目?2.构建目标是什么?3.项目中如何使用jsoup或其他进程?

我在这里是全新的。所以,请帮助我。提前致谢...

4

2 回答 2

7

您可以使用 JSoup 解析。

你去http://jsoup.org/cookbook/

JSoup 很棒而且非常有效,您会在上面的链接中找到很好的例子。

首先,您必须使用以下方式连接到要解析的网页:

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 回答