Android - 将config.xml解析为Map

时间:2015-09-17 21:05:06

标签: java android

我尝试将应用config.xml中的所有条目解析为Map<String,String> 似乎无法找到一种简单的方法......

该文件位于res / values / config.xml

有没有办法通过mAppContext.getResources()获取所有密钥标识符?

1 个答案:

答案 0 :(得分:1)

如果 call.InputDevice[TCallIoDeviceType.callIoDeviceTypeSoundcard] = ""; call.InputDevice[TCallIoDeviceType.callIoDeviceTypePort] = _inputPort.ToString(); 中有任意XML文件或相关资源集(例如res/xml/),您可以在res/xml-es/对象上使用getXml()来获取Resources。总的来说,这只是一个知道如何从资源中读取的XmlResourceParser

从那里,您可以使用XmlPullParser基于事件的pull API来读取XML。

例如,假设我们XmlPullParser包含以下内容:

res/xml/words.xml

然后,此代码将使用以下单词填充<words> <word value="lorem" /> <word value="ipsum" /> <word value="dolor" /> <word value="sit" /> <word value="amet" /> <word value="consectetuer" /> <word value="adipiscing" /> <word value="elit" /> <word value="morbi" /> <word value="vel" /> <word value="ligula" /> <word value="vitae" /> <word value="arcu" /> <word value="aliquet" /> <word value="mollis" /> <word value="etiam" /> <word value="vel" /> <word value="erat" /> <word value="placerat" /> <word value="ante" /> <word value="porttitor" /> <word value="sodales" /> <word value="pellentesque" /> <word value="augue" /> <word value="purus" /> </words> (名为ArrayList<String>):

items

您需要针对您的XML结构进行调整(我不知道您的“键”是元素名称,特定属性值还是什么)以及您的内存数据表示(例如 XmlPullParser xpp=getResources().getXml(R.xml.words); while (xpp.getEventType()!=XmlPullParser.END_DOCUMENT) { if (xpp.getEventType()==XmlPullParser.START_TAG) { if (xpp.getName().equals("word")) { items.add(xpp.getAttributeValue(0)); } } xpp.next(); } )。

对于您尝试使用mapStuff.put(xpp.getName(), xpp.getAttributeValue(0))文件解决的任何问题,完全有可能存在更简单的解决方案。但是,由于我们不知道此文件包含的内容或您使用其中包含的值的方式,因此很难建议您在应用程序中打包数据的其他方法。