<user>
<item>
<phone>010111122222</phone>
<name>김김김 </name>
<score>43</score>
</item>
<item>
<phone>01022224444</phone>
<name>ㄹㄹㄹㄹㄹㄹ</name>
<score/>
</item>
<item>
<phone>14444</phone>
<name>ㅌㅌㅌㅇㅌ</name>
<score/>
</item>
</user>
위와 같은 내용의 xml 파일이 DDNS와 APMSETUP을 이용해 만든 컴퓨터의 웹서버에 저장되어 있습니다. 이 파일은 mysql의 내용을 xml로 만든 것이구요. 이 xml의 내용을 안드로이드 화면 상으로 불러오고 싶은데 어떻게 해야 할지를 잘 모르겠습니다....
package com.example.phptest;
import java.io.InputStream;
import java.net.URL;
import java.util.Vector;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.R;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends ListActivity {
Vector<String> goldvec;
String Url="http://hphz10.iptime.org/user.xml";
URL goldurl; //태그명을 저장 하는 변수
String tag=""; //저장테이터 변수
String total="";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.simple_list_item_1, getXmldata()));
// getXmldata() 함수를 만들어서 리턴받음
ListView lv=getListView();
lv.setTextFilterEnabled(true);
}
public Vector getXmldata(){
XmlPullParserFactory factory;
goldvec=new Vector<String>();
goldvec.add("이름 점수 번호");
try {
factory=XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp=factory.newPullParser();
goldurl=new URL(Url);
InputStream in=goldurl.openStream();
xpp.setInput(in, "euc-kr");
Log.d(tag, xpp.getName()+":"+xpp.getEventType());
int eventType=xpp.getEventType(); //eventType -> 0
while(eventType!=XmlPullParser.END_DOCUMENT){ //END_DOCUMENT->1
if(eventType==XmlPullParser.START_TAG){//START_TAG->2
tag=xpp.getName();
if(tag.equals("phone")){
total +=xpp.getAttributeValue(1)+" ";
}
}else if(eventType==XmlPullParser.TEXT){//TEXT->4
if(tag.equals("name") || tag.equals("score")){
total+=xpp.getText()+" ";
}
}else if(eventType==XmlPullParser.END_TAG){//END_TAG -> 3
tag=xpp.getName();
if(tag.equals("phone")){
goldvec.add(total);
total="";
}
}
eventType=xpp.next();
}
} catch (Exception e) {
e.printStackTrace();
}
return goldvec;
}
}
이런 방식으로 웹에서 얻은 샘플 예제를 활용해서 만들어봤는데 잘 안되네요...뭐가 문제일까요?