- <?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 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数据库,才能把数据存储到数据库,否则就会报错:
- private void uparse() {
- // 访问服务器url
- String urlStr = "http://192.168.40.11:8888/Server/servlet/MenuServlet";
- try {
- // 实例化URL对象
- URL url = new URL(urlStr);
- // 打开连接
- URLConnection conn = url.openConnection();
- // 获得输入流
- InputStream in = conn.getInputStream();
- // 实例化DocumentBuilderFactory
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- // 实例化DocumentBuilder
- DocumentBuilder builder = factory.newDocumentBuilder();
- // 获得Document
- Document doc = builder.parse(in);
- // 获得节点列表
- NodeList nl = doc.getElementsByTagName("menu");
- // 获得访问数据接口ContentResolver
- ContentResolver cr = getContentResolver();
- // 访问数据的Uri
- Uri uri1 = Menus.CONTENT_URI;
- // 删除本地SQLite数据库中菜谱表中的数据
- cr.delete(uri1, null, null);
- // 循环将数据保存到菜谱表
- for (int i = 0; i < nl.getLength(); i++) {
- // 实例化ContentValues
- ContentValues values = new ContentValues();
- // 解析XML文件获得菜单id
- int id = Integer.parseInt(doc.getElementsByTagName("id")
- .item(i).getFirstChild().getNodeValue());
- // 名称
- String name = doc.getElementsByTagName("name").item(i)
- .getFirstChild().getNodeValue();
- // 图片路径
- String pic = doc.getElementsByTagName("pic").item(i)
- .getFirstChild().getNodeValue();
- // 价格
- int price = Integer.parseInt(doc.getElementsByTagName("price")
- .item(i).getFirstChild().getNodeValue());
- // 分类编号
- int typeId = Integer.parseInt(doc
- .getElementsByTagName("typeId").item(i).getFirstChild()
- .getNodeValue());
- // 备注
- String remark = doc.getElementsByTagName("remark").item(i)
- .getFirstChild().getNodeValue();
- // 添加到ContenValues对象
- values.put("_id", id);
- values.put("name", name);
- values.put("price", price);
- values.put("pic", pic);
- values.put("typeId", typeId);
- values.put("remark", remark);
- // 插入到数据库
- cr.insert(uri1, values);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }