如何从资产中解析XML?

时间:2012-08-06 12:10:52

标签: java android

假设我的资产中有一个包含此类数据的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来找到某个“mod”参数。

这是我有多远。

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,对吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

将XML作为XML资源放在res/xml/而不是assets/中,它将解析速度提高10倍,这得益于XML资源的优化。因此,我建议在资产中使用XML资源而不是XML。您可以看到这个CommonsWare sample project他使用XMLPullParser来解析xml资源。