我给你写了一个,写的不好不要见笑啊
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;import java.util.*;
import java.io.*;
public class GetXmlToMap extends DefaultHandler {    private static final String[] TAG={"MACRO","comment"};
    private boolean[] isTag = {false,false};
    private String[] values={"",""};
    private Map map = new HashMap();    public GetXmlToMap() {
    }
    public static void main(String[] args) {
        String xmlfile = "e:\\test.xml";
        try
        {
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser parser =factory.newSAXParser();
            GetXmlToMap t = new GetXmlToMap();
            parser.parse(xmlfile,t);
            Map m = t.getMap();
            System.out.println(m);
        }
        catch(Exception e)
                {e.printStackTrace();}
    }    public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException
    {
      for(int i=0;i<TAG.length;i++)
      {
          if(qName.equals(TAG[i]))
          {
          isTag[i] = true;
          }
      }
    }
    public void endElement(String namespaceURI, String localName, String qName) throws SAXException
    {
        for(int i=0;i<TAG.length;i++)
      {
          if(qName.equals(TAG[i]))
          {
          isTag[i] = false;
          }
      }
    }
    public void characters(char[] ch, int start, int length) throws SAXException {
        for(int i=0;i<TAG.length;i++)
      {
          if(isTag[i])
          {
          values[i] = new String(ch,start,length);
          if(i==1)
          {
              map.put(values[0],values[1]);
          }
          }
      }
    }
    public Map getMap() {
        return map;
    }
}