آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نحوه خواندن داده های اساسی از فایل xml

طاهر  12 سال پیش  12 سال پیش
+2 0

با سلام

خواستم بدونم چطور میشه اطلاعات رو در فایل xml ذخیره کرد و در برنامه اون رو خوند و استفاده کرد .

فرض کنید میخواهیم بازی فکری طراحی کنیم که شامل سوال و جوابهایی میشه و مراحل مختلف

حالا میخواهیم جواب هر مرحله رو در فایل xml ذخیره و بازیابی کنیم

چه باید کرد ؟

0 0
چرا xml ? دیتابیس بهتر نیست؟. با استفاده از parse کردن xml ، میشه اطلاعات رو خوند ،باید یه چیزی عین rss reader بنویسید ، توی لیست سوالات من بگرد قبلا پرسیدم. (12 سال پیش)
0 0
دلیل خاصی برای استفاده از xml داری؟ آخه برای این چیزی که گفتی همونطور که javac هم اشاره کرد دیتابیس بهتره. فرض کن همین بازی آفتابه! (من نمیدونم دقیقا چطوری کار کردن توش ولی اینجوری میتونسته باشه که ) شماره عکس و جواب رو توی یه دیتابیس میذارن و توی هر مرحله عکس و جواب رو از دیتابیس فراخونی میکنن. (12 سال پیش)
0 0
در همین برنامه آفتابه با استفاده از xml دیگه نیازی به داشتن دسترسی خواندن و نوشتن کارت حافظه نیست و احتمالا سرعت اجرای برنامه هم بیشتر خواهد شد (12 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
na3er-faraji  12 سال پیش
+4 0

این نمونه کلاسیه که من در پروژم استفاده کردم

 import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import android.content.Context;
import android.util.Log;


public class XMLParser {

    private Context myContext;


    // constructor
    public XMLParser(Context context) {
        myContext = context;
    }


    public String getXml(String path) {

        String xmlString = null;
        try {
            InputStream is = myContext.getAssets().open(path);
            int length = is.available();
            byte[] data = new byte[length];
            is.read(data);
            xmlString = new String(data);
        }
        catch (IOException e1) {
            e1.printStackTrace();
        }

        return xmlString;
    }


    /**
     * Getting XML DOM element
     * 
     * @param XML string
     * */
    public Document getDomElement(String xml) {
        Document doc = null;
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        try {

            DocumentBuilder db = dbf.newDocumentBuilder();

            InputSource is = new InputSource();
            is.setCharacterStream(new StringReader(xml));
            doc = db.parse(is);

        }
        catch (ParserConfigurationException e) {
            Log.e("Error: ", e.getMessage());
            return null;
        }
        catch (SAXException e) {
            Log.e("Error: ", e.getMessage());
            return null;
        }
        catch (IOException e) {
            Log.e("Error: ", e.getMessage());
            return null;
        }

        return doc;
    }


    /**
     * Getting node value
     * 
     * @param elem element
     */
    public final String getElementValue(Node elem) {
        Node child;
        if (elem != null) {
            if (elem.hasChildNodes()) {
                for (child = elem.getFirstChild(); child != null; child = child.getNextSibling()) {
                    if (child.getNodeType() == Node.TEXT_NODE) {
                        return child.getNodeValue();
                    }
                }
            }
        }
        return "";
    }


    /**
     * Getting node value
     * 
     * @param Element node
     * @param key string
     * */
    public String getValue(Element item, String str) {
        NodeList n = item.getElementsByTagName(str);
        return this.getElementValue(n.item(0));
    }
}

 

این هم نمونه ای از نحوه استفاده.

 private static final String     KEY_ITEM  = "City";
    private static final String     KEY_TITLE = "CityName";
    private static final String     KEY_ID    = "CityId";

    private void GetCityList()
    {

        //get city list and add it to ArrayList
        XMLParser parser = new XMLParser(G.context);
        String xml = parser.getXml("xml/city.xml");

        Document doc = parser.getDomElement(xml); // getting DOM element

        NodeList nl = doc.getElementsByTagName(KEY_ITEM);

        cityList = new ArrayList<ViewModelCity>();

        // looping through all item nodes <item>    
        for (int i = 0; i < nl.getLength(); i++) {
            Element e = (Element) nl.item(i);
            ViewModelCity city = new ViewModelCity();

            city.CityId = parser.getValue(e, KEY_ID);
            city.CityName = parser.getValue(e, KEY_TITLE);
            cityList.add(city);

        }

        adapter = new AdapterCityList(cityList);
        lstContent.setAdapter(adapter);
        adapter.notifyDataSetChanged();
    }

موفق باشید.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .