2012-08-06 64 views
0

假設我有我的資產XML文件這樣的數據如何解析資產中的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> 

,我需要找到通過輸入日,月,年和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解析的Java(Android版)] [1] [1]:http://stackoverflow.com/questions/6062454/xml-parsing-java-android – 2012-08-06 12:53:00

回答

3

將XML作爲XML資源存放在res/xml/而不是assets/中,它將解析速度提高10倍,並由XML資源優化到位。因此,我建議在資產中使用XML資源而不是XML。你可以看到這個CommonsWare sample project他使用XMLPullParser來解析xml資源。

+1

此外,作爲此答案的補充:如果您的設備的API> = 8,那麼使用[XPath](http://developer.android.com/reference/javax/xml/xpath/package-summary)更爲簡單。 HTML) – 2012-08-06 13:08:03