안드로이드 개발 질문/답변
(글 수 45,052)
<?xml version="1.0" encoding="UTF-8"?>
<Love1004 id="1002">
<NumberOfCampaign>20</NumberOfCampaign>
<Campaign>
<NgoIdx>0015</NgoIdx>
<NgoName><![CDATA[(사) We Start 운동본부]]></NgoName>
<CampaignIdx>464</CampaignIdx>
<CampaignTitle><![CDATA[파랑새 봉사단의 힘찬 날개짓을 응원해 주세요!]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201110/160(0)(2).png]]></ThumbnailUrl>
<IsNew>TRUE</IsNew>
<SupportType>4</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0037</NgoIdx>
<NgoName><![CDATA[한국해비타트]]></NgoName>
<CampaignIdx>463</CampaignIdx>
<CampaignTitle><![CDATA[집에 친구를 초대하고 싶은 지연이의 소원]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201110/SKT-160x130(0).png]]></ThumbnailUrl>
<IsNew>TRUE</IsNew>
<SupportType>4</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0088</NgoIdx>
<NgoName><![CDATA[굿피플]]></NgoName>
<CampaignIdx>462</CampaignIdx>
<CampaignTitle><![CDATA[폐허가 된 미얀마에 희망을 전해요!]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201110/160_130(0).png]]></ThumbnailUrl>
<IsNew>TRUE</IsNew>
<SupportType>1</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0019</NgoIdx>
<NgoName><![CDATA[한민족복지재단]]></NgoName>
<CampaignIdx>461</CampaignIdx>
<CampaignTitle><![CDATA[탄자니아 기근을 위한 식량모금]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201110/160(0).png]]></ThumbnailUrl>
<IsNew>TRUE</IsNew>
<SupportType>1</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0022</NgoIdx>
<NgoName><![CDATA[(사) 함께하는 사랑밭]]></NgoName>
<CampaignIdx>455</CampaignIdx>
<CampaignTitle><![CDATA[배냇저고리는 사랑입니다.]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201109/160_130(2).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>4</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0001</NgoIdx>
<NgoName><![CDATA[기아대책기구]]></NgoName>
<CampaignIdx>454</CampaignIdx>
<CampaignTitle><![CDATA[기아대책 식량지원캠페인 STOP HUNGER]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201109/160-130(jpg)(0).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>1</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0027</NgoIdx>
<NgoName><![CDATA[하트하트재단]]></NgoName>
<CampaignIdx>453</CampaignIdx>
<CampaignTitle><![CDATA[배고픔에 꿈을 잃어가는 란디]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201109/hope-160-130(1)(0).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>1</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0026</NgoIdx>
<NgoName><![CDATA[아이들과미래]]></NgoName>
<CampaignIdx>450</CampaignIdx>
<CampaignTitle><![CDATA[3년 전 멈춰진 정모의 시간]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201109/변환1_sos_160x130-copy.png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>4</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0031</NgoIdx>
<NgoName><![CDATA[최경주재단]]></NgoName>
<CampaignIdx>449</CampaignIdx>
<CampaignTitle><![CDATA[최경주와 함께하는 기빙트리]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201109/App_160(0).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>4</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0009</NgoIdx>
<NgoName><![CDATA[(사)지구촌나눔운동]]></NgoName>
<CampaignIdx>441</CampaignIdx>
<CampaignTitle><![CDATA[아기돼지가 전하는 동티모르의 희망]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201109/t-babypig-160-130-20110830((0).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>1</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0044</NgoIdx>
<NgoName><![CDATA[승가원]]></NgoName>
<CampaignIdx>440</CampaignIdx>
<CampaignTitle><![CDATA[환희의 아킬레스건]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201108/h160_130(0)(0)(0).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>5</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0017</NgoIdx>
<NgoName><![CDATA[한국백혈병소아암협회]]></NgoName>
<CampaignIdx>439</CampaignIdx>
<CampaignTitle><![CDATA[민서 이야기]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201108/160x130(0).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>5</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0010</NgoIdx>
<NgoName><![CDATA[대한적십자사]]></NgoName>
<CampaignIdx>436</CampaignIdx>
<CampaignTitle><![CDATA[할머니에게 '사랑의 울타리'가 되어주세요.]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201107/160(5).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>4</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0007</NgoIdx>
<NgoName><![CDATA[아름다운재단]]></NgoName>
<CampaignIdx>434</CampaignIdx>
<CampaignTitle><![CDATA[휴가비 1% 나눔으로 길 위의 희망찾기]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201107/160_130(2).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>3</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0005</NgoIdx>
<NgoName><![CDATA[유니세프]]></NgoName>
<CampaignIdx>432</CampaignIdx>
<CampaignTitle><![CDATA[하루 천 원으로 죽어가는 아이를 살릴 수 있습니다.]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201106/160x130(6).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>4</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0006</NgoIdx>
<NgoName><![CDATA[어린이재단]]></NgoName>
<CampaignIdx>420</CampaignIdx>
<CampaignTitle><![CDATA[꼬마 모차르트 예은이의 꿈]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201106/WAP_160-130_png(0).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>3</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0018</NgoIdx>
<NgoName><![CDATA[세이브더칠드런]]></NgoName>
<CampaignIdx>409</CampaignIdx>
<CampaignTitle><![CDATA[지혜가 아버지 곁에 있도록 도와주세요!]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201104/app(0).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>4</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0024</NgoIdx>
<NgoName><![CDATA[어린이어깨동무]]></NgoName>
<CampaignIdx>393</CampaignIdx>
<CampaignTitle><![CDATA[공부방 '친구네'와 함께 하실래요?]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201104/sumlist.png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>3</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0002</NgoIdx>
<NgoName><![CDATA[굿네이버스]]></NgoName>
<CampaignIdx>390</CampaignIdx>
<CampaignTitle><![CDATA[꿈꾸는 학교 지원 프로젝트!]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201104/160130(4).png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>2</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
<Campaign>
<NgoIdx>0021</NgoIdx>
<NgoName><![CDATA[한국메이크어위시재단]]></NgoName>
<CampaignIdx>308</CampaignIdx>
<CampaignTitle><![CDATA[WISH by U]]></CampaignTitle>
<ThumbnailUrl><![CDATA[http://file4.happyict.co.kr/mobile/1004/201010/메이크어위시.png]]></ThumbnailUrl>
<IsNew>FALSE</IsNew>
<SupportType>5</SupportType>
<CampaignSummary></CampaignSummary>
</Campaign>
</Love1004>
위의 코드를 파싱할려고 합니다.
그래서 XmlPullParser를 이용해서 시도했는데요...코드는 다음과 같습니다.
public class MainActivity extends Activity {private static final String TAG = "MainActivity";
String url;
TextView tv1,tv2,tv3,tv4,tv5,tv6,tv7,tv8,tv9,tv10,tv11,tv12,tv13,tv14,tv15,tv16,tv17,tv18,tv19,tv20;
ArrayList<Campaign> campaign = new ArrayList<Campaign>();
public ArrayList<Campaign> getlCampaign() {return campaign;
}
public void setCampaign(ArrayList<Campaign> campaign) {this.campaign = campaign;
}
Handler handler = new Handler() { public void handleMessage(Message msg) {tv1.setText(campaign.get(0).getWord());
tv2.setText(campaign.get(2).getWord());
tv3.setText(campaign.get(3).getWord());
tv4.setText(campaign.get(4).getWord());
tv5.setText(campaign.get(5).getWord());
tv6.setText(campaign.get(6).getWord());
tv7.setText(campaign.get(7).getWord());
tv8.setText(campaign.get(8).getWord());
tv9.setText(campaign.get(9).getWord());
tv10.setText(campaign.get(10).getWord());
tv11.setText(campaign.get(11).getWord());
tv12.setText(campaign.get(12).getWord());
tv13.setText(campaign.get(13).getWord());
tv14.setText(campaign.get(14).getWord());
tv15.setText(campaign.get(15).getWord());
tv16.setText(campaign.get(16).getWord());
tv17.setText(campaign.get(17).getWord());
tv18.setText(campaign.get(18).getWord());
tv19.setText(campaign.get(19).getWord());
tv20.setText(campaign.get(20).getWord());
}
};
class ReadThread extends Thread { public void run() {url = "http://1004.happyict.co.kr/skt/xml/getCampaigninfo.asp?id=1002";
Log.v(TAG, "url : " + url);
URL text = null;
try { text = new URL("url); } catch (MalformedURLException e1) {e1.printStackTrace();
}
try {XmlPullParserFactory parserCreator = XmlPullParserFactory
.newInstance();
XmlPullParser parser = parserCreator.newPullParser();
parser.setInput(text.openStream(), "utf-8");
int parserEvent = parser.getEventType();
String tag = null;
String NgoName = "";
while (parserEvent != XmlPullParser.END_DOCUMENT) { switch (parserEvent) {case XmlPullParser.START_TAG:
tag = parser.getName();
if(tag.compareTo("Campaign")==0){}
if (tag.compareTo("NgoName") == 0) {NgoName = parser.nextText();
}
break;
case XmlPullParser.END_TAG:
Campaign temp = new Campaign(NgoName);
campaign.add(temp);
Log.d(" parser test ", NgoName);tag = "nothing";
break;
}
parserEvent = parser.next();
}
}
catch( Exception e )
{ Toast.makeText(MainActivity.this, "네트워크가 불안정합니다. 잠시후에 다시 시도해주세요." , Toast.LENGTH_SHORT).show(); } handler.sendEmptyMessage(0);
}
}
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.v(TAG, "size" + campaign.size());
tv1 = (TextView) findViewById(R.id.textView1);
tv2 = (TextView) findViewById(R.id.textView2);
tv3 = (TextView) findViewById(R.id.textView3);
tv4 = (TextView) findViewById(R.id.textView4);
tv5 = (TextView) findViewById(R.id.textView5);
tv6 = (TextView) findViewById(R.id.textView6);
tv7 = (TextView) findViewById(R.id.textView7);
tv8 = (TextView) findViewById(R.id.textView8);
tv9 = (TextView) findViewById(R.id.textView9);
tv10 = (TextView) findViewById(R.id.textView10);
tv11 = (TextView) findViewById(R.id.textView11);
tv12 = (TextView) findViewById(R.id.textView12);
tv13 = (TextView) findViewById(R.id.textView13);
tv14 = (TextView) findViewById(R.id.textView14);
tv15 = (TextView) findViewById(R.id.textView15);
tv16 = (TextView) findViewById(R.id.textView16);
tv17 = (TextView) findViewById(R.id.textView17);
tv18 = (TextView) findViewById(R.id.textView18);
tv19 = (TextView) findViewById(R.id.textView19);
tv20 = (TextView) findViewById(R.id.textView20);
new ReadThread().start();
}
}
그런데 결과가 이따구로 나오네요....
(사)We Start 운동본부
(사)We Start 운동본부
(사)We Start 운동본부
(사)We Start 운동본부
(사)We Start 운동본부
(사)We Start 운동본부
(사)We Start 운동본부
(사)We Start 운동본부
한국해비타트
한국해비타트
한국해비타트
한국해비타트
한국해비타트
한국해비타트
한국해비타트
한국해비타트
굿피플
굿피플
굿피플
왜 그럴까요? 이유가 궁금합니다. 더불어 해결책도 문의 드립니다.
감사합니다....




endtag에서 어떤 태그가 끝났을 때 캠페인을 추가해줘야 하는지 조건이 안걸려있어서 태그가 끝날 때 마다 추가된 것 같네요