How to parse XML from URL using XMLpullparser in Android



I am a novice Android Developer I am trying to parse Xml from URL.I am able to parse a XML file in assets folder but i am not able to parse url from web page and this is my code given below`public class



public class MainActivity extends ActionBarActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


listView = (ListView) findViewById(R.id.list);



List<Device> devices = null;

try {


XMLPullParserHandler parser = new XMLPullParserHandler();
devices = parser.parse(getAssets().open("xml.php"));
ArrayAdapter<Device> adapter =
new ArrayAdapter<Device>(this, R.layout.list_item,devices);
listView.setAdapter(adapter);
} catch (IOException e) {
e.printStackTrace();
// TODO: handle exception
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


//



public class XMLPullParserHandler {
List<Device> devices;

private Device device;
private String text;


public XMLPullParserHandler(){
devices = new ArrayList<Device>();
}
public List<Device>getDevices(){
return devices;

}
public List<Device> parse(InputStream is){

XmlPullParserFactory factory = null;
XmlPullParser parser = null;

try {
factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);

parser = factory.newPullParser();
parser.setInput(is,null );

int eventType = parser.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT){
String tagname = parser.getName();
switch (eventType) {

case XmlPullParser.START_TAG:
if (tagname.equalsIgnoreCase("device")){
device = new Device();
}

break;

case XmlPullParser.TEXT:

text = parser.getText();
break;

case XmlPullParser.END_TAG:
if (tagname.equalsIgnoreCase("device")) {
devices.add(device);
}else if(tagname.equalsIgnoreCase("id")){
device.setId(Integer.parseInt(text));
}else if(tagname.equalsIgnoreCase("devName")){
device.setDevname(text);
}else if(tagname.equalsIgnoreCase("devID")){
device.setDevid(text);
}else if(tagname.equalsIgnoreCase("devDes")){
device.setDevDes(text);
}else if(tagname.equalsIgnoreCase("img")){
device.setDevimg(text);
}else if(tagname.equalsIgnoreCase("chart")){
device.setDevchart(Integer.parseInt(text));
}else if(tagname.equalsIgnoreCase("type")){
device.setDevtype(Integer.parseInt(text));
}

break;
default:
break;
}
eventType = parser.next();
}



} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

return devices;

}


}


No comments:

Post a Comment