XML解析之DOM解析_四层结合数据库

来源:互联网 发布:语音输入翻译软件 编辑:程序博客网 时间:2024/06/05 18:47


***************************************************************XML解析之DOM解析_四层结合数据库*********************************************************************

*******************************文件放在assets中*************************

**************************************************数据库的Bean**************************************************************

public class Book {private String _id;private String name;private String author;private String price;public String get_id() {return _id;}public void set_id(String _id) {this._id = _id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getPrice() {return price;}public void setPrice(String price) {this.price = price;}public Book(String _id, String name, String author, String price) {super();this._id = _id;this.name = name;this.author = author;this.price = price;}public Book() {super();// TODO Auto-generated constructor stub}@Overridepublic String toString() {return   name + "\t\t"+ "\t\t"+ author+ "\t\t"+  price + "\n";}public Book(String name, String author, String price) {super();this.name = name;this.author = author;this.price = price;}}



*************************************************MainActivity.class***********************************************

import java.util.ArrayList;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import android.os.Bundle;import android.app.Activity;import android.content.ContentValues;import android.database.sqlite.SQLiteDatabase;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends Activity {private View listbook;private ListView listView;private ArrayList<Book> list;private ArrayAdapter<Book> adapter;private MySQLite mySQLite;private SQLiteDatabase db;private ContentValues values;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listbook = findViewById(R.id.listbook);listView = (ListView) findViewById(R.id.listView);list = new ArrayList<Book>();mySQLite = new MySQLite(this);db = mySQLite.getWritableDatabase();values = new ContentValues();adapter = new ArrayAdapter<Book>(MainActivity.this,android.R.layout.simple_list_item_1, android.R.id.text1, list);listView.setAdapter(adapter);listbook.setOnClickListener(new OnClickListener() {private String price;private String name;private String author;@Overridepublic void onClick(View v) {list.clear();//每次都清空数据try {//获取一个DocumentBuilder工厂DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//通过DocumentBuilder工厂得到一个DocumentBuilder对象DocumentBuilder builder = factory.newDocumentBuilder();//getAssets方法获取资源文件,使用DocumentBuilder对象将资源文件流转换成Document对象Document document = builder.parse(getAssets().open("books2.xml"));//使用document对象的getdocumentElement方法获取document第一层Element对象Element element = document.getDocumentElement();//通过element对象的getelementsByTagName获取该element子节点的nodeListNodeList china = element.getElementsByTagName("china");for (int i = 0; i < china.getLength(); i++) {Element china1 = (Element) china.item(i);NodeList list2 = element.getElementsByTagName("book");//遍历nodeListfor (int j = 0; j < list2.getLength(); j++) {Element element2 = (Element) list2.item(j);//String id = element2.getAttribute("id");price = element2.getElementsByTagName("price").item(0).getTextContent();name = element2.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();author = element2.getElementsByTagName("author").item(0).getTextContent();//bookHe();}}NodeList foreiner = element.getElementsByTagName("foreiner");for (int i = 0; i < foreiner.getLength(); i++) {Element foreiner1 = (Element) foreiner.item(i);NodeList list2 = element.getElementsByTagName("book");//遍历nodeListfor (int j = 0; j < list2.getLength(); j++) {Element element2 = (Element) list2.item(j);//String id = element2.getAttribute("id");price = element2.getElementsByTagName("price").item(0).getTextContent();name = element2.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();author = element2.getElementsByTagName("author").item(0).getTextContent();bookHe();values.put("name", name);//添加到数据库values.put("author", author);values.put("price", price);db.insert("book", null, values);Toast.makeText(MainActivity.this, "BOOK", 0).show();}}Toast.makeText(MainActivity.this, "KING", 0).show();adapter.notifyDataSetChanged();} catch (Exception e) {// TODO: handle exception}}private void bookHe() {Book book = new Book(name, author, price);list.add(book);}});}}

**************************************************MySQLite.class****************************************************************

import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class MySQLite extends SQLiteOpenHelper {public MySQLite(Context context) {super(context, "k.db", null, 1);// TODO Auto-generated constructor stub}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubdb.execSQL("create table book(_id integer primary key autoincrement,name varchar(0),author varchar(0),price varchar(0))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}



0 0