Android编程解析XML方法详解(SAX,DOM与PULL)

2019-12-10 19:31:09王冬梅
Android编程解析XML方法详解(SAX,DOM与PULL)

我会在项目的assets目录中放置一个XML文档books.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<books>
  <book>
    <id>1001</id>
    <name>Thinking In Java</name>
    <price>80.00</price>
  </book>
  <book>
    <id>1002</id>
    <name>Core Java</name>
    <price>90.00</price>
  </book>
  <book>
    <id>1003</id>
    <name>Hello, Andriod</name>
    <price>100.00</price>
  </book>
</books>

然后我们分别使用以上三种解析技术解析文档,得到一个List<Book>的对象,先来看一下Book.java的代码:

package com.scott.xml.model;
public class Book {
  private int id;
  private String name;
  private float price;
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public float getPrice() {
    return price;
  }
  public void setPrice(float price) {
    this.price = price;
  }
  @Override
  public String toString() {
    return "id:" + id + ", name:" + name + ", price:" + price;
  }
}

最后,我们还要把这个集合对象中的数据生成一个新的XML文档,如图:

Android编程解析XML方法详解(SAX,DOM与PULL)

生成的XML结构跟原始文档略有不同,是下面这种格式:

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book id="1001">
  <name>Thinking In Java</name>
  <price>80.0</price>
 </book>
 <book id="1002">
  <name>Core Java</name>
  <price>90.0</price>
 </book>
 <book id="1003">
  <name>Hello, Andriod</name>
  <price>100.0</price>
 </book>
</books>