java - Android - 将 config.xml 解析为 Map

标签 java android

我正在尝试将应用程序 config.xml 中的所有条目解析为 Map<String,String> 似乎找不到简单的方法来做到这一点..

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

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

最佳答案

如果 res/xml/ 中有任意 XML 文件或相关资源集(例如 res/xml-es/ ),您可以使用 getXml()Resources上对象获得 XmlResourceParser 。总的来说,这只是一个 XmlPullParser它知道如何从资源中读取内容。

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

例如,假设我们有 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 ),文字为:

  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();
  }

您需要针对您的 XML 结构(我不知道您的“键”是元素名称、特定属性值还是什么)和内存中数据表示(例如 mapStuff.put(xpp.getName(), xpp.getAttributeValue(0)) )进行调整。

对于您尝试使用 res/xml/config.xml 解决的任何问题,完全有可能有更简单的解决方案。文件。但是,由于我们不知道该文件包含什么内容,也不知道您如何使用其中包含的值,因此很难向您提供在应用程序中打包该数据的其他方法的建议。

关于java - Android - 将 config.xml 解析为 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32639969/

相关文章:

java - 如何从java中的url编码字符串(不是URL)中获取参数

java - 在 java 或 joda time 中使用格式化字符串添加分钟

Android EditText 禁用编辑但允许滚动

android - 项目单击时的 RecyclerView 动画

java - 时间戳更改日期

java - 简单 ListView onClick 中的按钮

Android动画-旋转图像不规则移动

android - 单击按钮检查互联网连接

android - 为具有现有应用程序的设备发现特定的蓝牙设备

c# - C# 中的 TestNG 类似框架