在Android中解析SD卡

时间:2013-04-16 03:18:29

标签: android url xml-parsing

我的代码在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是要走的路,但它可能会使事情进一步复杂化。感谢。

2 个答案:

答案 0 :(得分: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()));

答案 1 :(得分:1)

有效的URL以协议开头。 Environment.getExternalStorageDirectory()没有返回任何协议,它返回文件路径。您需要将文件协议添加到字符串的开头。