1

構造が次のrawリソースにある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>
 ...

私がしなければならないのは、「アブハジア」、「アファール」などの言語の値をリストに入力することです。XMLPullParserを使用してみましたが、言語の名前を取得する方法がわかりません。フィールドではないので。どんな助けでもありがたいです。

4

2 に答える 2

1

では、通常の使用はstring-arrayどうですか?

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

その後、電話String[] langs = getResources().getStringArray(R.id.languages);

または、従来のW3CDOMパーサーを使用してみてください。

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 に答える