<pension pension_home=http://m/rothem/ pension_img="/data/pension/mobile/rothem.gif" sido="강원" gugun="양양군" tel="070-7721-1785" hp="010-9046-1785" homepage="rothemtreepension.com" searchword="양양, 설악산, 대청봉, 오색약수, 오색온천, 주전골, 오색, 낙산해수욕장, 하조대 해수욕장, 남애항, 바닷가, 가족, 단체, 워크샵, 독채, 이색, 산과계곡, 알뜰, 인터넷" map_x="128.4535684" map_y="38.0760453" pension_name="로뎀나무아래" hit="2358">로뎀나무아래</pension>
이런식의 데이터가 200개 정도 있습니다.
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.local);
Intent intent = getIntent();
String local = intent.getExtras().getString("local").toString();
ArrayList<Pension> m_pension = new ArrayList<Pension>();
PensionAdapter m_adapter = new PensionAdapter(this, R.layout.row, m_pension);
setListAdapter(m_adapter);
try
{
URL text = new URL("http://parser.php");
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(text.openStream(), "UTF-8");
String sName="";
String uri = "";
boolean initem = false;
while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
switch(parser.getEventType()){
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.END_DOCUMENT:
break;
case XmlPullParser.TEXT:
if(initem){
sName = parser.getText();
initem = false;
}
break;
case XmlPullParser.START_TAG:
if(parser.getName().equals("pension")){
if(parser.getAttributeValue(3).equals(local) || parser.getAttributeValue(7).equals(local)){
uri = "http://pension.kr/" + parser.getAttributeValue(1);
Pension p1 = new Pension(uri, sName, parser.getAttributeValue(2), parser.getAttributeValue(3));
m_pension.add(p1);
initem = true;
}
}
break;
}
parser.next();
}
}
catch(Throwable t) {
Toast.makeText(this, "실패: " + t.toString(), Toast.LENGTH_LONG).show();
}
}
소스 전문입니다.
실행하면 데이터가 쭈욱 나오기는 하는데
꼭 첫번째 뜨는것만 펜션이름을 못가져오네요..
왜그런지 모르겠습니다.
그리고 실행할때마다 순서가 랜덤으로 나오던데
고정으로 할수도 있나요?




풀파서는 랜덤으로 나올리가 없습니다. xml이 랜덤으로 온다면 모르겠지만 무조건 위에서부터 차례대로 출력합니다.
랜덤으로 오는걸 받아서 정렬할 수도 있겠죠.
첫번째걸 못받아오는건... case XmlPullParser.START_DOCUMENT: break; 이거때문인거 같기도 한데..