PDA

View Full Version : لطفا این کد را برای من توضیح دهید.



sina4everafter
چهارشنبه 08 مرداد 1393, 19:31 عصر
سلام. اگر امکانش هست این کد و برای من توضیح دهید.

این کد برای پارس کردن یه فایل xml هست.


import java.io.InputStream;
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 {


static List<Category> categories;
private static Category category;
private static String currentText;


public static List<Category> parse(Context context) {


XmlPullParserFactory xmlPullParserFactoryObject;
XmlPullParser xmlPullParserObject;


// ---try...catch---
try {


xmlPullParserFactoryObject = XmlPullParserFactory.newInstance();
xmlPullParserObject = xmlPullParserFactoryObject.newPullParser();
InputStream inputStream = context.getApplicationContext()
.getAssets().open("categories.xml");
xmlPullParserObject.setInput(inputStream, null);
// ---while loop---
int eventType = xmlPullParserObject.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String tagNAme = xmlPullParserObject.getName();


switch (eventType) {
case XmlPullParser.START_TAG:
if (tagNAme.equalsIgnoreCase("category")) {
category = new Category();
}
break;


case XmlPullParser.TEXT:
currentText = xmlPullParserObject.getText();
break;


case XmlPullParser.END_TAG:
if (tagNAme.equalsIgnoreCase("categories")) {
categories.add(category);
} else if (tagNAme.equalsIgnoreCase("name")) {
category.setName(currentText);
} else if (tagNAme.equalsIgnoreCase("id")) {
category.setId(currentText);
}
break;
default:
break;
}
xmlPullParserObject.next();
}// ---End of while---
} catch (Exception e) {
e.printStackTrace();
}


return categories;
}
}


مشکل من داخل بلاک try است.
ممنون.