java Pull解析XML

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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值