XMLPullParser is a class in Android API, which support to parse XML Data
Screenshots:
Screenshots:
EmployeeDetails.java
package com.swamys.xmlpullparsing.model;
public class EmployeeDetails {
private int id;
private String name;
private int salary;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int string) {
this.salary = string;
}
}
XMLPillParser.java
package com.swamys.xmlpullparsing.parser;
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import
com.swamys.xmlpullparsing.model.EmployeeDetails;
public class XMLPullParser {
public static
List<EmployeeDetails> parseData(String data)
throws IOException {
List<EmployeeDetails>
employeeList = null;
try
{
Boolean inDataItemTag = false;
String CurrentTagName = "";
EmployeeDetails employeeDetails = null;
employeeList = new ArrayList<EmployeeDetails>();
// creating XML
Factory object
XmlPullParserFactory factory =
XmlPullParserFactory.newInstance();
// creating XML
parser object
XmlPullParser parser =
factory.newPullParser();
// set input to
parser object
parser.setInput(new StringReader(data));
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG:
CurrentTagName =
parser.getName();
if (CurrentTagName.equals("employee"))
{
inDataItemTag = true;
employeeDetails = new EmployeeDetails();
employeeList.add(employeeDetails);
}
break;
case XmlPullParser.TEXT:
if (inDataItemTag && employeeDetails != null) {
if (CurrentTagName.equals("id")) {
employeeDetails.setId(Integer.parseInt(parser
.getText()));
} else if (CurrentTagName.equals("name")) {
employeeDetails.setName(parser.getText());
} else if (CurrentTagName.equals("salary")) {
employeeDetails.setSalary(Integer.parseInt(parser
.getText()));
}
}
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals("employee")) {
inDataItemTag = false;
}
break;
}
eventType = parser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
}
return employeeList;
}
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
/>
</RelativeLayout>
MainActivity.java
package com.swamys.xmlpullparsing;
import java.io.IOException;
import java.util.List;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.widget.TextView;
import
com.swamys.xmlpullparsing.model.EmployeeDetails;
import
com.swamys.xmlpullparsing.parser.XMLPullParser;
public class MainActivity extends Activity {
TextView textView;
ProgressDialog dialog;
EmployeeDetails employeeDetails;
String content = "<employees><employee><id>101</id>"
+"<name>Chaitanya</name><salary>50000</salary>"
+"</employee><employee><id>102</id><name>Swamy</name>"
+"<salary>60000</salary></employee></employees>";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView1);
try {
List<EmployeeDetails>
employeeList = XMLPullParser
.parseData(content);
setData(employeeList);
} catch (IOException e) {
e.printStackTrace();
}
}
private void setData(List<EmployeeDetails>
employeeList) {
for (int i = 0; i < employeeList.size();
i++) {
employeeDetails = employeeList.get(i);
textView.append("Id: " + employeeDetails.getId() + "\n");
textView.append("Name: " + employeeDetails.getName() + "\n");
textView.append("Salary: "+employeeDetails.getSalary()+"\n");
textView.append("____________________________\n");
}
}
}
thanks for sharing with us. it's very beneficial post.
ReplyDeleteAndroid training in Chandigarh