java - 在 Android 中用 XML 内容填充列表

标签 java android xml list parsing

我正在尝试从位于原始资源中的 XML 文件中检索信息,该文件的结构如下:

<?xml version="1.0" encoding="utf-8" ?>
<languages>
  <language code="ab">Abkhazian</language>
  <language code="aa">Afar</language>
  <language code="af">Afrikaans</language>
  <language code="sq">Albanian</language>
 ...

我要做的是用语言的值填充一个列表,比如“Abkhazian”、“Afar”……我尝试使用 XMLPullParser,但我不知道如何检索名称语言,因为它不是一个领域。 任何帮助将不胜感激。

最佳答案

那么你将使用普通的 string-array 怎么样?

<string-array name="languages">
   <item>Abkhazian</item>
   <item>Afar</item>
   <item>Afrikaans</item>
</string-array>

然后调用 String[] langs = getResources().getStringArray(R.id.languages);

或者尝试使用经典的 W3C DOM 解析器:

DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
Document doc;
doc = f.newDocumentBuilder().parse(<xml>);
NodeList langs = doc.getElementsByTagName("languages");
ArrayList<String> data = new ArrayList<String>();
String lang = null;
for (int i = 0; i < langs.getLength(); i++) {
Node n = langs.item(i);
if (n.getFirstChild().getNodeType() == Node.TEXT_NODE) {
   lang = n.getFirstChild().getNodeValue();
   data.add(lang);
}

关于java - 在 Android 中用 XML 内容填充列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14911806/

相关文章:

java - Jsoup:下载Excel文件中的数据

java - Spring - 如何在不匹配列名的情况下使用 BeanPropertyRowMapper

java - Fantom项目引用java源码编译成jar?

javascript - 使用 Javascript 将 XML 转换为 JSON(以及反之)

xml - 如何使用 Bash 将具有 4 个 xml 节点的日志文件拆分为 4 个文件?

c# - 从 PostAsync() 读取 XML 响应

java - 如何在 Java 中签署 AWS API 请求(适用于 Android 应用程序)

java - 使用加速度传感器时 Android 应用程序崩溃

android - 仅使用 Android 模块在 Android Studio 中打开 Flutter 项目

android-manifest - 仅适用于平板电脑的应用程序