0

我想将给定的 web 服务 url 保存为 xml 文件以进行离线 sax 解析。

在 Online 我使用 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 文件中解析数据。

如果用户在线启动应用程序,则必须从 url 解析数据。

任何人都可以在这里帮助我或分享知识

我正在生成如下代码的 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 {

    }
}

但它在 NetworkonMainThreadException 引发异常

  connection.connect();

提前致谢。

4

1 回答 1

0

我认为您第一次在 sdcard 中生成文件(包含您的 xml),并且每次检查该文件是否存在于 sdcard 中然后解析相同,否则从 url 加载数据并生成 xml 文件。

希望你明白我所说的

于 2012-07-05T12:23:38.310 回答