화면에 출력을 위해서 어느곳에 어떤 코드가 필요한가염? 정말 모르겠습니당!!ㅜ
package com.android.XmlTest;
import java.net.URL;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class XmlTest extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try
{
URL text = new URL("http://192.168.1.50:8080/dongseo/timetable.xml");
XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance();
XmlPullParser parser = parserCreator.newPullParser();
parser.setInput( text.openStream(), null );
TextView status1 = (TextView) findViewById( R.id.status1 );
TextView status2 = (TextView) findViewById( R.id.status2 );
TextView status3 = (TextView) findViewById( R.id.status3 );
int parserEvent = parser.getEventType();
status1.setText("파싱중");
String tag;//xml글자 담을곳
boolean inTitle = false;
while (parserEvent != XmlPullParser.END_DOCUMENT )//XML 파일의 끝에 도달했을 때 이 사건이 반환된다
{
switch(parserEvent)
{
case XmlPullParser.TEXT://요소의 텍스트(ex:<tag>text</tag>의 text)를 만났을 때 이 사건이 반환된다.
tag = parser.getName();
if (inTitle)
{
Log.i("dd", "name = " + parser.getText() );
}
Log.i("dd", "name = " + parser.getText() );
break;
case XmlPullParser.END_TAG://요소의 종료 태그(ex:</tag>)를 만났을 때 이 사건이 반환된다.
tag = parser.getName();
if (tag.compareTo("name") == 0)
{
inTitle = false;
}
break;
case XmlPullParser.START_TAG://시작태그(ex:<tag> )를 만났을 때 이 사건이 반환된다.
tag = parser.getName();
if (tag.compareTo("name") == 0)
{
inTitle = true;
}
break;
}
parserEvent = parser.next();
}
status1.setText("파싱 끝");
}
catch( Exception e )
{
Log.e("dd", "Error in network call", e);
}
}
}
이 예제에서는 파싱된 결과를 Log에 찍기 위해 바로바로 했지만..실무에서는 그렇게 하기엔 무리가 있지요..
이 기능 자체를 별도의 클래스로 만들고 거기에서 xml을 파싱한뒤 그 결과를 List 객체 같은 것에 담아 그걸 리턴하는 함수를 만듭니다..
그러고 화면을 출력하는 oncreate 메소드에서 방금 위에서 언급한 함수를 호출해서 리턴받은 객체에서 파싱된 결과를 꺼내서 출력하는 식으로 하는게 접근이 쉬울꺼에요..