2012-08-06 2 views
0

은 가정하자 나는 이러한 데이터 애셋에서 XML을 구문 분석하는 방법은 무엇입니까?

<mods day="30" month="8" year="2012"> 
     <mod id="1" name="1a">Hello123</mod> 
     <mod id="2" name="2a">Hello123</mod> 
     <mod id="3" name="3a">Hello123</mod> 
    </mods> 

<mods day="31" month="8" year="2012"> 
     <mod id="1" name="1a">Hello123</mod> 
     <mod id="2" name="2a">Hello123</mod> 
     <mod id="3" name="3a">Hello123</mod> 
    </mods> 

내 자산 XML 파일을하고 난 년, 월, 일 및 ID를 입력하여 특정 "모드"매개 변수를 찾아야합니다.

여기까지의 결과는 다음과 같습니다.

c.setTime(new Date()); 

String y = sdy.format(c.getTime()); 
String m = sdm.format(c.getTime()); 
String d = sdd.format(c.getTime()); 


InputStream istr = this.getAssets().open("mods.xml"); 
XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
factory.setNamespaceAware(true); 
XmlPullParser xrp; 
xrp = factory.newPullParser(); 
xrp.setInput(istr, "UTF-8"); 

// not sure what to do next... 

맞다면 지금 xrp에 필요한 매개 변수를 쿼리해야합니다.

감사합니다.

+0

아마이 주제는 당신을 도와줍니다 : [분석 XML 자바 (안드로이드)] [1] [1] : http://stackoverflow.com/questions/6062454/xml-parsing-java-android –

답변

3

XML을 assets/이 아닌 res/xml/이 아닌 XML 리소스로 넣으면 XML 리소스 최적화가 10 배 빠르게 수행됩니다. 따라서 자산에서 XML 대신 XML 자원을 사용하는 것이 좋습니다. 이 CommonsWare sample project을 보면 XMLPullParser를 사용하여 xml 리소스를 구문 분석 할 수 있습니다.

+1

또한이 답변에 추가로 API> = 8 인 기기를 타겟팅하는 경우 [XPath] (http://developer.android.com/reference/javax/xml/xpath/package-summary)를 사용하는 것이 더 쉽습니다. HTML) –

관련 문제