sina4everafter
شنبه 04 مرداد 1393, 10:14 صبح
سلام دوستان. ممنون میشم اگر راهنماییم کنید.
من یه فایل ایکس ام ال دارم به صورت زیر:
<?xml version="1.0" encoding="utf-8"?>
<categories>
<category>
<id>length</id>
<name>طول</name>
</category>
<category>
<id>Power</id>
<name>توان</name>
</category>
<category>
<id>Energy</id>
<name>انرژی</name>
</category>
<category>
<id>Time</id>
<name>زمان</name>
</category>
<category>
<id>Temperature</id>
<name>درجه حرارت</name>
</category>
<category>
<id>Mass</id>
<name>جرم</name>
</category>
<category>
<id>Area</id>
<name>سطح</name>
</category>
<category>
<id>Angle</id>
<name>زاویه</name>
</category>
<category>
<id>Speed</id>
<name>سرعت</name>
</category>
<category>
<id>Volume</id>
<name>حجم</name>
</category>
<category>
<id>Pressure</id>
<name>فشار</name>
</category>
</categories>
و یک کلاسی دارم به صورت زیر که فایل xml و پارس می کنه.البته نمی دونم درست پارس می کنم یا نه.
import java.io.InputStream;
import java.util.Arrays;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.content.Context;
public class XmlPullParserCategory {
//---XmlPullParserFactory---
XmlPullParserFactory xmlPullParserFactoryObject;
//---Context---
Context contextObject;
//---Create Array---
String[] arrayCategory;
//---Initialize Values---
int counter = 0;
//---Constructor---
public XmlPullParserCategory(Category category){
//---try...catch---
try {
//---Parsing XML---
xmlPullParserFactoryObject = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParserObject = xmlPullParserFactoryObject.newPullParser();
InputStream input_Stream = contextObject.getApplicationContext().getAssets(). open("categories.xml");
xmlPullParserObject.setInput(input_Stream, null);
//---while loop---
while (xmlPullParserObject.getEventType() != XmlPullParser.END_DOCUMENT){
//---if statement---
if (xmlPullParserObject.getEventType() == XmlPullParser.START_TAG &&
xmlPullParserObject.getName().equals("category")) {
arrayCategory[counter] = xmlPullParserObject.getName();
counter++;
}
xmlPullParserObject.next();
}
//---Sort Array---
Arrays.sort(arrayCategory);
} catch (Exception e) {
e.printStackTrace();
}
}
//---getAllCats Method---
public String[] getAllCats(){
return arrayCategory;
}
}
و یک کلاس دیگه ای دارم به نام Category که باید از این کلاسی که فایل xml و پارس کرده استفاده کنم.
public class Category {
// public Category(){
String[] categoryObjectArray = new XmlPullParserCategory(this).getAllCats();
// }
}
اما نمی دونم چه طوری؟
اگر درست توضیح ندارم، اطلاع بدین که بهتر توضیح بدم.ممنون.
من یه فایل ایکس ام ال دارم به صورت زیر:
<?xml version="1.0" encoding="utf-8"?>
<categories>
<category>
<id>length</id>
<name>طول</name>
</category>
<category>
<id>Power</id>
<name>توان</name>
</category>
<category>
<id>Energy</id>
<name>انرژی</name>
</category>
<category>
<id>Time</id>
<name>زمان</name>
</category>
<category>
<id>Temperature</id>
<name>درجه حرارت</name>
</category>
<category>
<id>Mass</id>
<name>جرم</name>
</category>
<category>
<id>Area</id>
<name>سطح</name>
</category>
<category>
<id>Angle</id>
<name>زاویه</name>
</category>
<category>
<id>Speed</id>
<name>سرعت</name>
</category>
<category>
<id>Volume</id>
<name>حجم</name>
</category>
<category>
<id>Pressure</id>
<name>فشار</name>
</category>
</categories>
و یک کلاسی دارم به صورت زیر که فایل xml و پارس می کنه.البته نمی دونم درست پارس می کنم یا نه.
import java.io.InputStream;
import java.util.Arrays;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.content.Context;
public class XmlPullParserCategory {
//---XmlPullParserFactory---
XmlPullParserFactory xmlPullParserFactoryObject;
//---Context---
Context contextObject;
//---Create Array---
String[] arrayCategory;
//---Initialize Values---
int counter = 0;
//---Constructor---
public XmlPullParserCategory(Category category){
//---try...catch---
try {
//---Parsing XML---
xmlPullParserFactoryObject = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParserObject = xmlPullParserFactoryObject.newPullParser();
InputStream input_Stream = contextObject.getApplicationContext().getAssets(). open("categories.xml");
xmlPullParserObject.setInput(input_Stream, null);
//---while loop---
while (xmlPullParserObject.getEventType() != XmlPullParser.END_DOCUMENT){
//---if statement---
if (xmlPullParserObject.getEventType() == XmlPullParser.START_TAG &&
xmlPullParserObject.getName().equals("category")) {
arrayCategory[counter] = xmlPullParserObject.getName();
counter++;
}
xmlPullParserObject.next();
}
//---Sort Array---
Arrays.sort(arrayCategory);
} catch (Exception e) {
e.printStackTrace();
}
}
//---getAllCats Method---
public String[] getAllCats(){
return arrayCategory;
}
}
و یک کلاس دیگه ای دارم به نام Category که باید از این کلاسی که فایل xml و پارس کرده استفاده کنم.
public class Category {
// public Category(){
String[] categoryObjectArray = new XmlPullParserCategory(this).getAllCats();
// }
}
اما نمی دونم چه طوری؟
اگر درست توضیح ندارم، اطلاع بدین که بهتر توضیح بدم.ممنون.