#android #mysql #xml #xml-parsing
#Android #mysql #xml #xml-синтаксический анализ
Вопрос:
я хочу знать, как импортировать XML-данные в sqlite? В приложении m я хочу вставить данные mysql моего веб-сервера в мобильный sqlite Android … есть ли другой способ без синтаксического анализа xml?
Пожалуйста, помогите мне или дайте мне ссылку на импорт данных в sqlite из xml (удаленный).. буду признателен за вашу помощь …:)
Ответ №1:
hay проверьте этот код, он поможет вам
пакет com.pxr.tutorial.xmltest; импортируйте java.util.Список массивов; импортируйте java.util.HashMap; импортируйте org.w3c.dom.Документ; импортируйте org.w3c.dom.Element; импортируйте org.w3c.dom.NodeList; импорт android.app.ListActivity; импортируйте android.content.Значения содержимого; импортируйте android.database.sqlite.База данных SQLiteDatabase; импорт android.os.Bundle; импорт android.util.Log; импортируйте android.widget.ListAdapter; импортируйте android.widget.SimpleAdapter; импортируйте android.widget.TextView; импортируйте android.widget.Тост; общедоступный класс Main расширяет ListActivity { //частный статический ТЕГ конечной строки = "com.pxr.tutorial.xmltest.Main"; частная база данных SQLiteDatabase; //статическая конечная строка ID="id"; статическое конечное строковое ИМЯ="name"; статическая итоговая строка SCORE ="оценка"; Ошибка TextView; // НИКОГДА БОЛЬШЕ НЕ ДЕЛАЙТЕ ТО ЖЕ САМОЕ!!! // public void onCreate (база данных SQLiteDatabase) { // db.ExecSQL("СОЗДАТЬ константы ТАБЛИЦЫ (АВТОИНКРЕМЕНТНОЕ СОЗДАНИЕ _id-ЦЕЛОГО ЧИСЛА ПЕРВИЧНОГО КЛЮЧА, текст имени, целое число баллов);"); // // ContentValues cv=новые значения содержимого(); // // //Тестовые данные // cv.put(ИМЯ, "Ajay"); // cv.put(ОЦЕНКА "100"); // db.insert("константы", null, cv); // // } /** Вызывается при первом создании действия. */ @Переопределить public void onCreate (пакет savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listplaceholder); // ЭТО ОТКРЫТИЕ БАЗЫ ДАННЫХ, ЕСЛИ БАЗА ДАННЫХ НЕ СУЩЕСТВУЕТ, ОНА СОЗДАЕТ ЕЕ база данных = (new DatabaseHelper(this).getWritableDatabase()); // ЛУЧШЕ СОЗДАЙТЕ СВОЙ СОБСТВЕННЫЙ КЛАСС С ПОЛЯМИ И СРЕДСТВАМИ ДОСТУПА Список массивов> mylist = новый список массивов>(); Строка xml = XMLfunctions.getXML(); Документ doc = xmlфункции.XMLfromString(xml); int numResults = XMLfunctions.numResults(документ); if((numResults map = новая хэш-карта(); Элемент e = (Элемент)nodes.item(i); map.put("id", XMLfunctions.GetValue(e, "id")); map.put("name", XMLfunctions.GetValue(e, "имя")); map.put("Оценка", XMLfunctions.GetValue(e, "оценка")); mylist.add(карта); } // ПОЧИТАЙТЕ КОЕ-ЧТО ОБ ИТЕРАТОРАХ И КОЛЛЕКЦИЯХ В JAVA для (int j = 0; j родительский элемент, вид представления, позиция int, длинный идентификатор) { @SuppressWarnings("непроверено") HashMap o = (HashMap) lv.getItemAtPosition (позиция); Был нажат Toast.makeText (Main.this, "ID '" o.get("id") "'.", Toast.LENGTH_LONG).show(); } });*/ } private void processAdd(Строка string, Строка string2, Строка string3) { / Автоматически сгенерированная заглушка метода TODO Значения ContentValues = новые значения ContentValues(2); // values.put("id", строка); значения.положить(DatabaseHelper.NAME, строка 2); values.put(DatabaseHelper.ОЦЕНКА, string3); если (база данных!=null){ //ВСТАВИТЬ, ЕСЛИ БАЗА ДАННЫХ ОТКРЫТА database.insert(DatabaseHelper.ИМЯ_ТАБЛИЦЫ, null, значения); // Log.i(ТЕГ "СОХРАНЕНО В БАЗЕ ДАННЫХ"); }else{ // ЕСЛИ БАЗА ДАННЫХ ЗАКРЫТА, ОТКРОЙТЕ СНАЧАЛА, ЧЕМ ВСТАВИТЬ база данных = (new DatabaseHelper(this).getWritableDatabase()); //Log.e(ТЕГ, "БАЗА ДАННЫХ ЗАКРЫТА, ОТКРЫТИЕ ..."); database.insert(DatabaseHelper.ИМЯ_ТАБЛИЦЫ, null, значения); //Log.i(ТЕГ, "ВСТАВЛЕННЫЙ В БАЗУ ДАННЫХ"); } } @Переопределить защищенная пустота onDestroy() { // ВСЕГДА ЗАКРЫВАЙТЕ БАЗУ ДАННЫХ, ЕСЛИ ВЫ ЗАВЕРШАЕТЕ РАБОТУ приложения если (база данных!=null){ database.close(); } super.onDestroy(); } }