0

このサイトでの提案に従って、org.simpleframework.xmlからSimpleXMLを採用しました。このコードを使用して、ディスク上のファイルからクラスを逆シリアル化します。

      try {
            myPoints = serial.read(Points.class, new File(getFilesDir(), "points.xml"));
            Log.i(TAG, "Number of Points: " + myPoints.getSize());
        } catch (FileNotFoundException e) {
            Log.d(TAG, "No data found!");
        } catch (Exception e) {
            Log.d(TAG, "Uncaught exception: ", e.getMessage());
        }

ファイル「points.xml」の内容が正当なxmlではない場合(私の場合は空のファイルです)、serial.readが壊れます(Persister.classで例外が発生します。申し訳ありませんが、simplexmlソースがありません... )。事前にxmlの整合性を確認する必要がありますか?誰か助けてもらえますか?

4

1 に答える 1

1

問題を修正することはできないため、事前に検証する必要はありません。正常に失敗することを確認してください(コードが機能しているように見えるため)。

ただし、逆シリアル化エラーが発生した場合は、ファイルが空かどうかを確認することをお勧めします。空のファイルは、不正な形式のXMLファイルの場合は問題にならない可能性があります。

于 2011-05-18T13:21:20.143 に答える