使用HtmlCleaner和AsyncTask清理HTML

时间:2013-09-25 16:08:40

标签: java android android-asynctask htmlcleaner

我正在尝试获取一个已清理的XML文件,以便我可以解析数据。这是我的尝试:

private class cleanHtml extends AsyncTask<Void, Void, Void>{

    @Override
    protected Void doInBackground(Void... arg0) {
        try {
            HtmlCleaner cleaner = new HtmlCleaner();
            String url = "https://www.easistent.com/urniki/263/razredi/16515";
            TagNode node = cleaner.clean(new URL(url));
            CleanerProperties props = cleaner.getProperties();
            new PrettyXmlSerializer(props).writeToFile(node, "cleaned.xml", "utf-8");
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
}

我必须使用AsyncTask,因为如果我在主用户​​界面上执行此操作,应用程序就会崩溃。

现在我正在尝试执行此操作:

cleanHtml.execute();

然而,这不起作用。它强调“cleanHtml.execute();”并说:

  

无法从AsyncTask类型中对非静态方法执行静态引用(Void ...)

任何想法我现在如何运行这个AsyncTask?我甚至做得对吗?此外,一旦我开始工作,我将在哪里可以看到输出的cleaning.xml文件?因为我没有设置任何“输出文件夹”。

1 个答案:

答案 0 :(得分:1)

使用

new cleanHtml.execute();

而不是

cleanHtml.execute();

执行AsyncTask因为execute()不是AsyncTask类的静态方法所以你需要创建类的实例来调用execute()方法