3

私のコードは宣言でここで停止しsourceURL、例外をスローします。

java.net.MalformedURLException: プロトコルが見つかりません: mnt/sdcard/Android/data...

URL sourceUrl = new URL(Environment.getExternalStorageDirectory() + "/Android/data/com.esentral.testdev/"+"temp2.xml");

MyXMLHandler myXMLHandler = new MyXMLHandler();
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));

ここでのケースは、ある種の URL-String の誤った変換ですか? もしそうなら、一般的な回避策はありますか?SAX が進むべき道だと聞きましたが、状況がさらに複雑になる可能性があります。ありがとう。

4

2 に答える 2

4

http、ftp、file などのプロトコルを指定する必要があります。ここでは、sdcard からアクセスしているため、"file://"パス全体の前になります。

これでコードスニペットを変更します。

URL sourceUrl = new URL("file://" + Environment.getExternalStorageDirectory() + "/Android/data/com.esentral.testdev/"+"temp2.xml");
MyXMLHandler myXMLHandler = new MyXMLHandler();
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));
于 2013-05-17T17:09:36.560 に答える
1

有効な URL はプロトコルで始まります。ファイル パスを返す Environment.getExternalStorageDirectory() によって返されるプロトコルはありません。文字列の先頭にファイル プロトコルを追加する必要があります。

于 2013-04-16T03:23:16.340 に答える