2013-04-16 4 views
3

에 내 코드는 sourceURL 선언에 중단되고 예외가 발생합니다 :구문 분석 SD 카드 안드로이드

java.net.MalformedURLException : 프로토콜을 찾을 수 없습니다 : MNT/SDCARD/안드로이드/데이터 ...

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 문자열의 잘못된 변환이 여기에 있습니까? 그렇다면 일반적인 해결 방법이 있습니까? SAX가가는 길이라고 들었지만 더 복잡하게 만들 수 있습니다. 감사.

답변

1

유효한 URL은 프로토콜로 시작합니다. Environment.getExternalStorageDirectory()에 의해 반환 된 프로토콜은 없으며 파일 경로를 반환합니다. 문자열의 시작 부분에 파일 프로토콜을 추가해야합니다.

+0

감사를 당신의 코드를 수정합니다. 너에게 좋다. 여기에서 진행됩니다. – babyhir

4

http, ftp, file 등의 프로토콜을 지정해야합니다. 여기서 전체 경로 앞에 "file://"이 될 수 있도록 sdcard에서 액세스합니다.

지금이와

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())); 
관련 문제