我尝试将应用config.xml中的所有条目解析为Map<String,String>
似乎无法找到一种简单的方法......
该文件位于res / values / config.xml
有没有办法通过mAppContext.getResources()
获取所有密钥标识符?
答案 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))
文件解决的任何问题,完全有可能存在更简单的解决方案。但是,由于我们不知道此文件包含的内容或您使用其中包含的值的方式,因此很难建议您在应用程序中打包数据的其他方法。