import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
public class XMLPullParseDemo {
public static void main(String[] args) throws XmlPullParserException, IOException {
XmlPullParserFactory factroy = XmlPullParserFactory.newInstance();
XmlPullParser parser = factroy.newPullParser();
parser.setInput(new FileInputStream("src/day24/Books.xml"), "utf-8");
List<Book> list = null;
Book book = null;
String tagName = null;
int evetType = parser.getEventType();
while (evetType != XmlPullParser.END_DOCUMENT) {
switch (evetType) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<>();
break;
case XmlPullParser.START_TAG:
tagName = parser.getName();
if (tagName.equals("Books")) {
list = new ArrayList<>();
} else if (tagName.equals("Book")) {
book = new Book();
book.setId(parser.getAttributeValue(0));
}
break;
case XmlPullParser.TEXT:
if (tagName.equals("name")) {
book.setName(parser.getText());
} else if (tagName.equals("price")) {
book.setPrice(Double.parseDouble(parser.getText()));
} else if (tagName.equals("作者")) {
book.setTotal(parser.getText());
}
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals("Book")) {
list.add(book);
}
tagName = "";
break;
default:
break;
}
evetType = parser.next();
}
for (Book books : list) {
System.out.println(books);
}
}
}
class Book {
private String name, total, id;
private double price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTotal() {
return total;
}
public void setTotal(String total) {
this.total = total;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Book() {
super();
}
public Book(String name, String total, double price) {
super();
this.name = name;
this.total = total;
this.price = price;
}
@Override
public String toString() {
return "Book [name=" + name + ", total=" + total + ", id=" + id + ", price=" + price + "]";
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Books>
<Book id="1">
<name>Java编程思想</name>
<price>108</price>
<作者> Bruce Eckel</作者>
</Book>
<Book id="2">
<name>疯狂java讲义</name>
<price>109</price>
<作者>李刚</作者>
</Book>
<Book id="3">
<name>Java数据结构</name>
<price>69</price>
<作者>马克·艾伦·维斯 </作者>
</Book>
</Books>