我正在尝试获取一个干净的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,因为如果我在主 UI 上执行此操作,应用程序就会崩溃。
现在这就是我尝试执行它的方式:
cleanHtml.execute();
但是,这不起作用。它强调"cleanHtml.execute();"并这样说:
无法从 AsyncTask 类型对非静态方法执行(Void...)进行静态引用
知道我现在如何运行这个异步任务吗?我做得对吗?另外,一旦我开始工作,我将在哪里看到输出已清理.xml文件?因为我没有设置任何"输出文件夹"。
使用
new cleanHtml.execute();
而不是
cleanHtml.execute();
执行AsyncTask
因为 execute() 不是类的静态方法AsyncTask
所以你需要创建类的实例来调用execute()
方法