/* * 该类用于读取处理XML文件。 */ package com.coderising.litestruts; import java.awt.List; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class DealWithInfo extends DefaultHandler { private String key; private String value; private HashMap<String, String> aMap=new HashMap<String,String>(); //一个用来存储。 private ArrayList<HashMap<String, String>> list=new ArrayList<HashMap<String,String>>();; //List集合用来保存Map集合。 private String currentTag; @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { currentTag =qName; if("action".equals(currentTag)){ key=attributes.getValue(0); //action的name属性。 value=attributes.getValue(1); //action的class属性。 //在将属性成对的保存到一个Map集合中。 aMap.put(key, value); //保存后将中间变量变为null. key=null; value=null; } if("result".equals(currentTag)){ key=attributes.getValue(0); //result的name属性。 } } @Override public void characters(char[] ch, int start, int length) throws SAXException { if("result".equals(currentTag)){ String name=new String(ch,start,length); value=name; //将属性成对的保存到一个Map集合中。 aMap.put(key, value); //保存后将中间变量清空。 key=null; value=null; currentTag=null; } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { if("action".equals(qName)){ list.add(aMap); aMap=new HashMap<String,String>(); } } //返回list集合。 public ArrayList<HashMap<String, String>> getDate(){ return list; } }