0

オフラインの sax 解析のために、指定された Web サービスの URL を xml ファイルとして保存したいと思います。

オンラインでは、指定された url を解析するために SAX パーサーを使用しています。

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からinputsourseを取得しており、オフライン解析のためにそのinputsourseを.xmlファイルとして保存したいと考えています。

ここで、ユーザーは初めてオンラインでアプリケーションをロードする必要があります。アプリケーション内では、オフライン機能を提供しています。ユーザーがアプリをオフラインに設定した場合、inputsourse は 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でファイル(ur xmlを含む)を生成し、そのファイルがsdcardに存在するかどうかを毎回確認し、同じように解析するか、URLからデータをロードしてxmlファイルを生成すると思います。

私が言うことを理解してくれることを願っています

于 2012-07-05T12:23:38.310 に答える