我希望将给定的webservice url保存为用于脱机sax解析的xml文件。
在线我正在使用SAX Parser来解析给定的URL。
URL sourceUrl = new URL("http://www.example.com/mobile/eventinfo.php?id=20);
InputSource inputSource = new InputSource(sourceUrl.openStream());
inputSource.setEncoding("ISO-8859-1");
为此,我从上面获取了url的输入源,现在我想将该输入源保存为.xml文件以进行脱机解析。
此处用户必须首次在线加载应用程序。在应用程序内部,我们提供离线设施。如果用户将应用程序设置为离线,则输入必须将xml文件保存在本地内存中。
如果用户在离线状态下启动应用程序,则应用程序必须解析保存的xml文件中的数据。
如果用户在线启动应用程序,则必须从网址解析数据。
任何人都可以帮助我或分享知识
我正在生成xml文件,如下面的代码
try {
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.connect();
int responseCode = connection.getResponseCode();
if(responseCode == 200){
InputStream inputStream = connection.getInputStream();
int size = connection.getContentLength();
FileOutputStream fileOutputStream = new FileOutputStream(new File(getCacheDir(),filename));
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String ch = null;
while((ch = bufferedReader.readLine()) != null){
fileOutputStream.write(ch.getBytes());
}
}else {
}
}
但是它在
处引发了一个Exception as NetworkonMainThreadException connection.connect();
提前感谢。
答案 0 :(得分:0)
我认为你第一次在sdcard中生成文件(包含ur xml),每次检查sdcard中是否存在该文件,然后解析相同的文件,否则从url加载数据并生成xml文件。
希望你能得到我说的话