파싱하고자하는 소스는 res/xml에 있으며 소스는 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<custom_list>
<custom>
<name>item1</name>
<address>1</address>
</custom>
<custom>
<name>item2</name>
<address>2</address>
</custom>
<custom>
<name>item3</name>
<address>3</address>
</custom>
<custom>
<name>item4</name>
<address>4</address>
</custom>
<custom>
<name>item5</name>
<address>5</address></custom>
</custom_list>
위와 같은소스를 파싱하여 리스트뷰로 표현하고싶은데
package com.example.parser;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
public class MainActivity extends Activity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
ArrayList<String> items = new ArrayList<String>();
try{
XmlPullParser customList = getResources().getXml(R.xml.custom_list);
while(customList.getEventType()!=XmlPullParser.END_DOCUMENT){
if(customList.getEventType()==XmlPullParser.START_TAG){
if(customList.getName().equals("custom")){
if(customList.getName().equals("name")){
//리스트뷰로 얻어오는방법 모르겠습니다
if(customList.getName().equals("address")){
//리스트뷰로 얻어오는 방법 모르겠습니다
}
}
}
}
customList.next();
}
}catch (XmlPullParserException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items);
ListView listView = (ListView)findViewById(R.id.listView);
listView.setAdapter(adapter);
}
}
메인소스를 위와같이 일단은 자료를 참고하여 작성하였습니다, 그런데 대부분 xml에서 value 값을 바로 읽어오다보니 제가 하고자하는 방향과는 다른거같아 listview에 xml 내용이 나오질 않습니다.ㅠㅠ
위와같은 소스에서 xml에 있는 내용을 어떻게 가져와야 하는지 알려주세요 ㅠㅠ 감사합니다