2012-03-15 2 views
3

res/xml 폴더에 XML 파일 (config.xml)이 있는데이 XML을 구문 분석해야합니다. 이렇게하려면 SAXParser를 사용합니다.프로젝트 리소스에서 XML을 구문 분석하는 방법 android

는 내용의 위치를 ​​URI 구문 분석 할 수있는 :

구문 분석 방법에는 다음과 같은 매개 변수가 있습니다 ...

SAXParserFactory factory = SAXParserFactory.newInstance(); 
SAXParser saxParser = factory.newSAXParser(); 
DefaultHandler handler = new DefaultHandler() { 
      //handler definition... 
}; 
Uri configUri = Uri.parse("android.resource://myPackageName/" + R.xml.config); 
saxParser.parse(configXML.toString(), handler); 

하지만이 작동하지 않습니다 :이 방법을 시도하고있다 .

dh 사용할 SAXDefaultHandler.

URI 또는 ​​Uri를 사용해야합니까? 차이점은 무엇입니까?

+0

안녕하세요, 리소스를 파싱하기 위해'SAXParser' 대신'XmlResourceParser'를 사용하십시오 –

답변

5

나는 고해상도/XML 폴더에 XML 파일 (config.xml 파일)을 가지고 있고이 XML을

전화 getResources().getXml(R.xml.config)을 구문 분석 할 필요가있다. XmlPullParser API를 따르는 XmlResourceParser가 전달됩니다. XmlPullParser JavaDocs에 나타낸 바와 같이, 당신은 다음과 같은 코드로 바람 :

 XmlResourceParser xpp=getResources().getXml(R.xml.config); 
    int eventType = xpp.getEventType(); 

    while (eventType != XmlPullParser.END_DOCUMENT) { 
     if (eventType == XmlPullParser.START_DOCUMENT) { 
      // do something 
     } else if (eventType == XmlPullParser.START_TAG) { 
      // do something 
     } else if (eventType == XmlPullParser.END_TAG) { 
      // do something 
     } else if (eventType == XmlPullParser.TEXT) { 
      // do something 
     } 
     eventType = xpp.next(); 
    } 

 

이 작업을 수행하려면 당신이 그, 그것을 작동시킬 수

하더라도 SAXParser를 사용 XmlResourceParser을 사용하는 것보다 ~ 10 배 느립니다.

+0

고마워요! 이런 식으로 작동합니다 ... – amp

관련 문제