解析后存储数据库

  1.   <?xml version="1.0" encoding="UTF-8" ?>   
  2. <menulist>  
  3. <menu>  
  4.   <id>1</id>   
  5.   <typeId>1</typeId>   
  6.   <name>水煮鱼</name>   
  7.   <pic>test</pic>   
  8.   <price>20</price>   
  9.   <remark>test</remark>   
  10.   </menu>  
  11. <menu>  
  12.   <id>2</id>   
  13.   <typeId>2</typeId>   
  14.   <name>凉拌西红柿</name>   
  15.   <pic>tets</pic>   
  16.   <price>10</price>   
  17.   <remark>test</remark>   
  18.   </menu>  
  19. <menu>  
  20.   <id>3</id>   
  21.   <typeId>3</typeId>   
  22.   <name>tofu</name>   
  23.   <pic>test</pic>   
  24.   <price>8</price>   
  25.   <remark>test</remark>   
  26.   </menu>  
  27.   </menulist>  
  <?xml version="1.0" encoding="UTF-8" ?> 
- <menulist>
- <menu>
  <id>1</id> 
  <typeId>1</typeId> 
  <name>水煮鱼</name> 
  <pic>test</pic> 
  <price>20</price> 
  <remark>test</remark> 
  </menu>
- <menu>
  <id>2</id> 
  <typeId>2</typeId> 
  <name>凉拌西红柿</name> 
  <pic>tets</pic> 
  <price>10</price> 
  <remark>test</remark> 
  </menu>
- <menu>
  <id>3</id> 
  <typeId>3</typeId> 
  <name>tofu</name> 
  <pic>test</pic> 
  <price>8</price> 
  <remark>test</remark> 
  </menu>
  </menulist>

 

解析XML文件并把数据存储到数据库,前提是数据库里有Menu表,还要连接上SQLITE数据库,才能把数据存储到数据库,否则就会报错:

  1. private void uparse() {  
  2.         // 访问服务器url  
  3.         String urlStr = "http://192.168.40.11:8888/Server/servlet/MenuServlet";  
  4.         try {  
  5.             // 实例化URL对象  
  6.             URL url = new URL(urlStr);  
  7.             // 打开连接  
  8.             URLConnection conn = url.openConnection();  
  9.             // 获得输入流  
  10.             InputStream in = conn.getInputStream();  
  11.             // 实例化DocumentBuilderFactory  
  12.             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
  13.             // 实例化DocumentBuilder  
  14.             DocumentBuilder builder = factory.newDocumentBuilder();  
  15.             // 获得Document  
  16.             Document doc = builder.parse(in);  
  17.             // 获得节点列表  
  18.             NodeList nl = doc.getElementsByTagName("menu");  
  19.             // 获得访问数据接口ContentResolver  
  20.             ContentResolver cr = getContentResolver();  
  21.             // 访问数据的Uri  
  22.             Uri uri1 = Menus.CONTENT_URI;  
  23.             // 删除本地SQLite数据库中菜谱表中的数据  
  24.             cr.delete(uri1, nullnull);  
  25.   
  26.             // 循环将数据保存到菜谱表  
  27.             for (int i = 0; i < nl.getLength(); i++) {  
  28.                 // 实例化ContentValues  
  29.                 ContentValues values = new ContentValues();  
  30.                 // 解析XML文件获得菜单id  
  31.                 int id = Integer.parseInt(doc.getElementsByTagName("id")  
  32.                         .item(i).getFirstChild().getNodeValue());  
  33.                 // 名称  
  34.                 String name = doc.getElementsByTagName("name").item(i)  
  35.                         .getFirstChild().getNodeValue();  
  36.                 // 图片路径  
  37.                 String pic = doc.getElementsByTagName("pic").item(i)  
  38.                         .getFirstChild().getNodeValue();  
  39.                 // 价格  
  40.                 int price = Integer.parseInt(doc.getElementsByTagName("price")  
  41.                         .item(i).getFirstChild().getNodeValue());  
  42.                 // 分类编号  
  43.                 int typeId = Integer.parseInt(doc  
  44.                         .getElementsByTagName("typeId").item(i).getFirstChild()  
  45.                         .getNodeValue());  
  46.                 // 备注  
  47.                 String remark = doc.getElementsByTagName("remark").item(i)  
  48.                         .getFirstChild().getNodeValue();  
  49.                   
  50.                 // 添加到ContenValues对象  
  51.                 values.put("_id", id);  
  52.                 values.put("name", name);  
  53.                 values.put("price", price);  
  54.                 values.put("pic", pic);  
  55.                 values.put("typeId", typeId);  
  56.                 values.put("remark", remark);  
  57.                 // 插入到数据库  
  58.                 cr.insert(uri1, values);  
  59.             }  
  60.         } catch (Exception e) {  
  61.             e.printStackTrace();  
  62.         }  
  63.     }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值