끌어 오기 구문 분석기를 사용하여 assets 폴더에서 로컬 XML 파일을 구문 분석하려면 어떻게해야합니까? 파서가 작동하도록 할 수 없습니다. 항상 io 예외를 throw합니다. 나는 파일에 대한 경로를 얻거나 파일에 연결할 수 없다고 생각한다.xml 구문 분석기 자산 xml
10
A
답변
22
mixm, (아무도 다른 것 같다 없기 때문에) 요청으로 내가 모두 '자산'과 '입술'에서 로컬 파일을로드 할 수 있지만 귀하의 질문에 대답하기 위해 여러 가지 방법으로 놀 된
:try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setValidating(false);
XmlPullParser myxml = factory.newPullParser();
그런 다음 xml 파일을 열고으로 설정 :
먼저, XML 테스트 전에 유효 확인 또는 검증을 해제 중 하나는, 이것은 당신이 그렇게 동시에 풀 파서를 초기화 할 수있는 방법입니다 끌어 오기 구문 분석기에 입력 :
InputStream raw = getApplicationContext().getAssets().open("simple.xml");
myxml.setInput(raw, null);
이제 설정하여 풀 루프 (또는 다른, 당신은 잡아 당기거나 지연되지 않습니다할지 여부에 따라 달라집니다, 즉 당신의 디자인 결정이있다 :
int eventType = myxml.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
Log.d(MY_DEBUG_TAG, "In start document");
}
else if(eventType == XmlPullParser.START_TAG) {
Log.d(MY_DEBUG_TAG, "In start tag = "+myxml.getName());
}
else if(eventType == XmlPullParser.END_TAG) {
Log.d(MY_DEBUG_TAG, "In end tag = "+myxml.getName());
}
else if(eventType == XmlPullParser.TEXT) {
Log.d(MY_DEBUG_TAG, "Have text = "+myxml.getText());
}
eventType = myxml.next();
}
} catch (XmlPullParserException e) {
참고 myxml.getEventType()
, 당신은 얻을이 작업을 수행 할 필요가 구문 분석하고 당신이 당기는 어떤 유형 이벤트를 처리합니다. 참고 : 가독성을 위해 블록을 생략하십시오.
는 2.1 위의 테스트는 - 프랭크
당신이 당겨보다 더 파서 다른 고려할 것입니다 도움이되기를 바랍니다? –