Archive for the 'Java' Category

Android でリソース内XMLを読み込む方法

月曜日, 5月 24th, 2010

自分用メモ。
Android開発で、アプリのリソースファイル内に置いたXMLファイルをパースして使いたいときは、
XmlPullParser を使うことで簡単にXMLを扱う事が出来る。

以下のサンプルは res/xml/target.xml を読み込む場合


JAVA:
  1. package net.anoncom.android.example;
  2. import java.io.IOException;
  3. import org.xmlpull.v1.XmlPullParser;
  4. import org.xmlpull.v1.XmlPullParserException;
  5. import android.content.res.Resources;
  6. import android.util.Log;
  7.  
  8.  
  9. public class XmlSample {
  10.  
  11.     public static void loadXML() {
  12.         try {
  13.             XmlPullParser parser = getResources().getXml(R.xml.target);
  14.             try {
  15.                 parser.setInput(getResources().openRawResource(R.xml.target), null);
  16.             } catch (NotFoundException e) {
  17.                 Log.e("XML_ERROR", e.getMessage());
  18.             } catch (XmlPullParserException e) {
  19.                 Log.e("XML_ERROR", e.getMessage());
  20.             }
  21.            
  22.            
  23.             for(int e = parser.getEventType(); e != XmlPullParser.END_DOCUMENT; e = parser.next()) {
  24.                 keyword = new Keyword();
  25.                
  26.                
  27.                 if(e == XmlPullParser.START_DOCUMENT) {
  28.                     // ドキュメント開始
  29.                     Log.d("XML:DOC", "START");
  30.                 } else if( e == XmlPullParser.TEXT ) {
  31.                     // エレメントに囲まれている部分
  32.                     Log.d("XML:TEXT", parser.getText());
  33.                 } else if(e == XmlPullParser.START_TAG) {
  34.                     // エレメントの開始
  35.                     Log.d("XML:ELEM", "START");
  36.                    
  37.                     // エレメント名
  38.                     Log.d("XML:ELEM_NAME", parser.Name());
  39.                    
  40.                     for( int a = 0; a <parser.getAttributeCount(); a++ ) {
  41.                         // 属性情報
  42.                         Log.d("XML:ELEM_ATTR", parser.getAttributeName(a) + " = " + parser.getAttributeValue(a));
  43.                     }
  44.                 } else if(e == XmlPullParser.END_TAG) {
  45.                     // エレメントの終了
  46.                     Log.d("XML:ELEM", "END");
  47.                 }
  48.             }
  49.             if ( e == XmlPullParser.END_DOCUMENT ) {
  50.                 // ドキュメント終了
  51.                 Log.d("XML:DOC", "END");
  52.             }
  53.         } catch (NotFoundException e) {
  54.             Log.e("XML", e.getClass().getName() + ": " + e.getMessage());
  55.         } catch ( XmlPullParserException e) {
  56.             Log.d( "XML", e.getClass().getName() + ": " + e.getMessage() );
  57.             for ( StackTraceElement s : e.getStackTrace()) {
  58.                 Log.d( "TRACE", s.toString());
  59.             }
  60.         } catch ( IOException e) {
  61.             Log.d( "XML", e.getClass().getName() + ": " + e.getMessage() );
  62.         }
  63.     }
  64. }

Get Adobe Flash playerPlugin by wpburn.com wordpress themes