xml的sax简单解析

来源:互联网 发布:网络语浪的意思 编辑:程序博客网 时间:2024/04/29 05:13

package day2.sax;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import day2.Account;

/*
 *   account.xml --->  Account对象
 */
public class TestSAXParseAccount {
    public static void main(String args[])throws Exception{
     SAXParserFactory factory = SAXParserFactory.newInstance();
     SAXParser parser = factory.newSAXParser();
     
     AccountHandler handler = new AccountHandler();
     parser.parse("./src/day2/sax/account.xml",handler);
     Account account = handler.getAccount();
     System.out.println("account id "+account.getId());
     System.out.println("account AccountName "+account.getAccountName());
     System.out.println("account Password "+account.getPassword());
     System.out.println("account balance "+account.getBalance());
     
    }
}
class AccountHandler extends DefaultHandler{
    private Account account;
    private String value;
    @Override
 public void startDocument() throws SAXException {
  // TODO Auto-generated method stub
  super.startDocument();
 }

 @Override
 public void endDocument() throws SAXException {
  // TODO Auto-generated method stub
  super.endDocument();
 }

 @Override
 public void startElement(String uri, String localName, String qName,
   Attributes attributes) throws SAXException {
       if(qName.equals("account")){
        account = new Account();
       }
  
 }

 @Override
 public void endElement(String uri, String localName, String qName)
   throws SAXException {
  if(qName.equals("id")){
   account.setId(Integer.parseInt(value));
  }else if(qName.equals("password")){
   account.setPassword(value);
  }else if(qName.equals("accountName")){
   account.setAccountName(value);
  }else if(qName.equals("balance")){
   account.setBalance(Integer.parseInt(value));
  } 
 }

 @Override
 public void characters(char[] ch, int start, int length)
   throws SAXException {
  value = new String(ch,start,length);
  if(value.trim().length()==0){
   return ;
  }
     
  
 }

 public Account getAccount() {
  return account;
 }

 public void setAccount(Account account) {
  this.account = account;
 }
 
 
}

 

 

原创粉丝点击