package com.yamato.xml; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; import android.app.Activity; import android.content.res.AssetManager; import android.os.Bundle; public class SimpleXmlPullAppActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { XmlPullParserFactory factory; factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser xpp = factory.newPullParser(); // assets情報の取得 AssetManager asset = getResources().getAssets(); // XMLファイルのストリーム情報を取得 InputStream is = null; is = asset.open("test.xml"); InputStreamReader isr = new InputStreamReader(is); xpp.setInput(isr); int eventType = xpp.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_DOCUMENT) { System.out.println("Start document"); } else if (eventType == XmlPullParser.START_TAG) { System.out.println("Start tag " + xpp.getName()); } else if (eventType == XmlPullParser.END_TAG) { System.out.println("End tag " + xpp.getName()); } else if (eventType == XmlPullParser.TEXT) { System.out.println("Text " + xpp.getText()); } eventType = xpp.next(); } } catch (XmlPullParserException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } System.out.println("End document"); } }
2012年4月13日金曜日
xmlファイルの読み込み-ファイル名を指定して読み込み
assetフォルダの中のファイルを指定して読み込む
xmlファイルの読み込み-アンドロイドデベロッパーのサンプルを試してみる。
XmlPullParser http://developer.android.com/intl/ja/reference/org/xmlpull/v1/XmlPullParser.html
アンドロイドデベロッパーのサンプルを試してみる。
アンドロイドデベロッパーのサンプルを試してみる。
package com.yamato.xml; import java.io.IOException; import java.io.StringReader; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; import android.app.Activity; import android.os.Bundle; public class SimpleXmlPullAppActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { XmlPullParserFactory factory; factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser xpp = factory.newPullParser(); xpp.setInput(new StringReader("<foo>Hello World!</foo>")); int eventType = xpp.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_DOCUMENT) { System.out.println("Start document"); } else if (eventType == XmlPullParser.START_TAG) { System.out.println("Start tag " + xpp.getName()); } else if (eventType == XmlPullParser.END_TAG) { System.out.println("End tag " + xpp.getName()); } else if (eventType == XmlPullParser.TEXT) { System.out.println("Text " + xpp.getText()); } eventType = xpp.next(); } } catch (XmlPullParserException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } System.out.println("End document"); } }
Error: ShouldNotReachHere()
Android プロジェクトにソースをコピーしてコンパイル単位名を変更したら下のようなエラーが出た
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (classFileParser.cpp:3494), pid=2444, tid=2592
# Error: ShouldNotReachHere()
#
# JRE version: 6.0_27-b07
# Java VM: Java HotSpot(TM) Client VM (20.2-b06 mixed mode windows-x86 )
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
androidアプリケーションとして実行すればいいようです。
登録:
投稿 (Atom)