SAXParserXml

	private void saxParseXml() {
		if (Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)) {
			File path = Environment.getExternalStorageDirectory();
			File f = new File(path, "books.xml");
			try {
				fis = new FileInputStream(f);
				
			} catch (Exception e1) {
				e1.printStackTrace();
			}
			
			SAXParserFactory spf = SAXParserFactory.newInstance();
			try {
				SAXParser sp = spf.newSAXParser();
				sp.parse(fis, new MyHandle());
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

	}

	class MyHandle extends DefaultHandler {

		private String tag;
		private Book b;

		@Override
		public void characters(char[] ch, int start, int length)
				throws SAXException {
			super.characters(ch, start, length);
			if (tag.equals("name")) {
				b.setName(new String(ch, start, length));
			} else if (tag.equals("author")) {
				b.setAuthor(new String(ch, start, length));
			} else if (tag.equals("price")) {
				b.setPrice(new String(ch, start, length));
			}
		}

		@Override
		public void endDocument() throws SAXException {
			super.endDocument();
		}

		@Override
		public void endElement(String uri, String localName, String qName)
				throws SAXException {
			super.endElement(uri, localName, qName);
			tag = "";
			if (localName.equals("book")) {
				l.add(b);
			}
		}

		@Override
		public void startDocument() throws SAXException {
			super.startDocument();
			l = new ArrayList
   
   
    
    ();
		}

		@Override
		public void startElement(String uri, String localName, String qName,
				Attributes attributes) throws SAXException {
			super.startElement(uri, localName, qName, attributes);
			tag = localName;
			if (tag.equals("book")) {
				b = new Book();
			}
		}
	}
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值