من یه فایل xml دارم که می خوام اون و پارس کنم. فایل xml ام به صورت زیره:
<?xml version="1.0" encoding="utf-8"?>
<categories>
<category>
<id>length</id>
<name>طول</name>
</category>
<category>
<id>Power</id>
<name>توان</name>
</category>
</categories>
من این فایل و به این صورت پارس می کنم. ولی نمیشه.
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.content.Context;
import com.asr24.cando.Category.Category;
public class CategoryParser {
List<Category> categories;
private Category category;
private String text;
Context context;
int counter = 0;
public CategoryParser(){
categories = new ArrayList<Category>();
}
public List<Category> getCategories(){
return categories;
}
public List<Category> parser(InputStream inputStream){
XmlPullParserFactory xmlPullParserFactoryObject;
XmlPullParser xmlPullParserObject;
//---try...catch---
try {
xmlPullParserFactoryObject = XmlPullParserFactory.newInstance();
xmlPullParserObject = xmlPullParserFactoryObject.newPullParser();
inputStream = context.getApplicationContext().getAssets().open("categories");
xmlPullParserObject.setInput(inputStream, null);
//---while loop---
int eventType = xmlPullParserObject.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
counter++;
String tagName = xmlPullParserObject.getName();
//---switch---
switch (eventType) {
case XmlPullParser.START_TAG:
if (tagName.equalsIgnoreCase("category")) {
category = new Category();
}
break;
case XmlPullParser.TEXT:
text = xmlPullParserObject.getText();
break;
case XmlPullParser.END_TAG:
if (tagName.equalsIgnoreCase("category")) {
categories.add(category);
}else if (tagName.equalsIgnoreCase("name")) {
category.setName(text);
}else if (tagName.equalsIgnoreCase("id")) {
category.setId(text);
}
break;
default:
break;
}
eventType = xmlPullParserObject.next();
}//---End of while---
} catch (Exception e) {
e.printStackTrace();
}
return categories;
}
public int getCounter(){
return counter;
}
}
ممنون میشم اگر راهنماییم کنید.