1. XMLPULL Download : http://www.xmlpull.org/v1/download/xmlpull_1_0_5.jar
2. main.xml Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="가져오기" />
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
3. XMLParseActivity.java
package net.kdgrid.xmlparse;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
public class XMLParseActivity extends Activity {
private TextView edtResult;
private Button btn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edtResult = (TextView)findViewById(R.id.textView1);
btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
try {
URL url = new URL("http://192.168.0.62/1/stb.xml");
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(url.openStream(), "utf-8");
String item = "", itemName = "", itemContents = "";
boolean bSet = false;
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.END_DOCUMENT:
break;
case XmlPullParser.START_TAG:
String tag = parser.getName();
if (tag.equals("teletext")) {
String sDate = parser.getAttributeValue(null, "date");
itemContents = sDate;
bSet = true;
}
break;
case XmlPullParser.END_TAG:
break;
case XmlPullParser.TEXT:
if (bSet) {
item = itemContents + " : " + parser.getText() + "\n"; bSet = false;
}
break;
}
eventType = parser.next();
}
edtResult.setText(item);
} catch (Exception e) {
Toast.makeText(v.getContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
}
4. stb.xml (웹서버)
<?xml version="1.0" encoding="UTF-8"?>
<settop>
<live>
<teletext date="201204021210">일본 정부 산하 연구 기관의 대지진 보고서 가운데 일본에서 발생한 거대 쓰나미가 중국 대도시도 강타할 것이라는 내용을 놓고 중국 내에서 논란이 이는 가운데 중국 정부 당국이 진화에 나섰다.</teletext>
</live>
</settop>