1

我正在尝试从位于原始资源中的 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,但我不知道如何检索语言的名称,因为它不是一个领域。任何帮助将不胜感激。

4

2 回答 2

1

那么你会使用 normalstring-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 Parser

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);
}
于 2013-02-16T16:05:05.543 回答
0

假设您已将解析器声明为:

XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
parser.setInput(is, null);   //'is' is the InputStream corresponding to your xml file

到达标签后,您可以使用以下方式检索存储在其中的数据:

String language = parser.nextText();

通过本教程了解更多详细信息:http: //xjaphx.wordpress.com/2011/10/16/android-xml-adventure-parsing-xml-data-with-xmlpullparser/

于 2013-02-16T16:41:18.040 回答