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

前端之家收集整理的这篇文章主要介绍了XML解析之DOM解析_四层结合数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


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

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

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

  1. public class Book {
  2. private String _id;
  3. private String name;
  4. private String author;
  5. private String price;
  6. public String get_id() {
  7. return _id;
  8. }
  9. public void set_id(String _id) {
  10. this._id = _id;
  11. }
  12. public String getName() {
  13. return name;
  14. }
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18. public String getAuthor() {
  19. return author;
  20. }
  21. public void setAuthor(String author) {
  22. this.author = author;
  23. }
  24. public String getPrice() {
  25. return price;
  26. }
  27. public void setPrice(String price) {
  28. this.price = price;
  29. }
  30. public Book(String _id,String name,String author,String price) {
  31. super();
  32. this._id = _id;
  33. this.name = name;
  34. this.author = author;
  35. this.price = price;
  36. }
  37. public Book() {
  38. super();
  39. // TODO Auto-generated constructor stub
  40. }
  41. @Override
  42. public String toString() {
  43. return name + "\t\t"+ "\t\t"+ author+ "\t\t"
  44. + price + "\n";
  45. }
  46. public Book(String name,String price) {
  47. super();
  48. this.name = name;
  49. this.author = author;
  50. this.price = price;
  51. }
  52. }



*************************************************MainActivity.class***********************************************
  1. import java.util.ArrayList;
  2.  
  3. import javax.xml.parsers.DocumentBuilder;
  4. import javax.xml.parsers.DocumentBuilderFactory;
  5.  
  6. import org.w3c.dom.Document;
  7. import org.w3c.dom.Element;
  8. import org.w3c.dom.NodeList;
  9.  
  10. import android.os.Bundle;
  11. import android.app.Activity;
  12. import android.content.ContentValues;
  13. import android.database.sqlite.sqliteDatabase;
  14. import android.view.Menu;
  15. import android.view.View;
  16. import android.view.View.OnClickListener;
  17. import android.widget.ArrayAdapter;
  18. import android.widget.ListView;
  19. import android.widget.Toast;
  20.  
  21. public class MainActivity extends Activity {
  22.  
  23. private View listbook;
  24. private ListView listView;
  25. private ArrayList<Book> list;
  26. private ArrayAdapter<Book> adapter;
  27. private MysqLite MysqLite;
  28. private sqliteDatabase db;
  29. private ContentValues values;
  30.  
  31. @Override
  32. protected void onCreate(Bundle savedInstanceState) {
  33. super.onCreate(savedInstanceState);
  34. setContentView(R.layout.activity_main);
  35. listbook = findViewById(R.id.listbook);
  36. listView = (ListView) findViewById(R.id.listView);
  37.  
  38. list = new ArrayList<Book>();
  39. MysqLite = new MysqLite(this);
  40. db = MysqLite.getWritableDatabase();
  41. values = new ContentValues();
  42. adapter = new ArrayAdapter<Book>(MainActivity.this,android.R.layout.simple_list_item_1,android.R.id.text1,list);
  43. listView.setAdapter(adapter);
  44. listbook.setOnClickListener(new OnClickListener() {
  45.  
  46. private String price;
  47. private String name;
  48. private String author;
  49.  
  50. @Override
  51. public void onClick(View v) {
  52. list.clear();//每次都清空数据
  53. try {
  54. //获取一个DocumentBuilder工厂
  55. DocumentBuilderFactory factory = DocumentBuilderFactory
  56. .newInstance();
  57. //通过DocumentBuilder工厂得到一个DocumentBuilder对象
  58. DocumentBuilder builder = factory.newDocumentBuilder();
  59. //getAssets方法获取资源文件,使用DocumentBuilder对象将资源文件流转换成Document对象
  60. Document document = builder.parse(getAssets().open(
  61. "books2.xml"));
  62. //使用document对象的getdocumentElement方法获取document第一层Element对象
  63. Element element = document.getDocumentElement();
  64. //通过element对象的getelementsByTagName获取该element子节点的nodeList
  65. NodeList china = element.getElementsByTagName("china");
  66. for (int i = 0; i < china.getLength(); i++) {
  67. Element china1 = (Element) china.item(i);
  68. NodeList list2 = element.getElementsByTagName("book");
  69. //遍历nodeList
  70. for (int j = 0; j < list2.getLength(); j++) {
  71. Element element2 = (Element) list2.item(j);
  72. // String id = element2.getAttribute("id");
  73. price = element2.getElementsByTagName("price")
  74. .item(0).getTextContent();
  75. name = element2.getElementsByTagName("name")
  76. .item(0).getFirstChild().getNodeValue();
  77. author = element2.getElementsByTagName("author")
  78. .item(0).getTextContent();
  79. //bookHe();
  80. }
  81. }
  82. NodeList foreiner = element.getElementsByTagName("foreiner");
  83. for (int i = 0; i < foreiner.getLength(); i++) {
  84. Element foreiner1 = (Element) foreiner.item(i);
  85. NodeList list2 = element.getElementsByTagName("book");
  86. //遍历nodeList
  87. for (int j = 0; j < list2.getLength(); j++) {
  88. Element element2 = (Element) list2.item(j);
  89. // String id = element2.getAttribute("id");
  90. price = element2.getElementsByTagName("price")
  91. .item(0).getTextContent();
  92. name = element2.getElementsByTagName("name")
  93. .item(0).getFirstChild().getNodeValue();
  94. author = element2.getElementsByTagName("author")
  95. .item(0).getTextContent();
  96. bookHe();
  97. values.put("name",name);//添加数据库
  98. values.put("author",author);
  99. values.put("price",price);
  100. db.insert("book",null,values);
  101. Toast.makeText(MainActivity.this,"BOOK",0).show();
  102. }
  103. }
  104. Toast.makeText(MainActivity.this,"KING",0).show();
  105. adapter.notifyDataSetChanged();
  106.  
  107. } catch (Exception e) {
  108. // TODO: handle exception
  109. }
  110. }
  111.  
  112. private void bookHe() {
  113. Book book = new Book(name,author,price);
  114. list.add(book);
  115. }
  116. });
  117. }
  118. }

**************************************************MysqLite.class****************************************************************
  1. import android.content.Context;
  2. import android.database.sqlite.sqliteDatabase;
  3. import android.database.sqlite.sqliteDatabase.CursorFactory;
  4. import android.database.sqlite.sqliteOpenHelper;
  5.  
  6. public class MysqLite extends sqliteOpenHelper {
  7.  
  8. public MysqLite(Context context) {
  9. super(context,"k.db",1);
  10. // TODO Auto-generated constructor stub
  11. }
  12.  
  13. @Override
  14. public void onCreate(sqliteDatabase db) {
  15. // TODO Auto-generated method stub
  16. db.execsql("create table book(_id integer primary key autoincrement,name varchar(0),author varchar(0),price varchar(0))");
  17. }
  18.  
  19. @Override
  20. public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) {
  21. // TODO Auto-generated method stub
  22.  
  23. }
  24.  
  25. }

猜你在找的XML相关文章