小弟急需sam解析xml的小例子
xml的格式是:  
<?xml version="1.0" encoding="GB2312" ?> 
- <welcome>
- <Head>
  <Command>Login</Command> 
  <Message_id>0</Message_id> 
  </Head>
- <Body>
  <UID>xiaoye</UID> 
  <PassWd>380454</PassWd> 
  </Body>
  </welcome>

解决方案 »

  1.   

    public class SaxTest {
             MyHandler test = new MyHandler();

             test.test("test.xml");
    }class MyHandler extends DefaultHandler{
    private Stack tags = new Stack();
             public void startElement(String uri, String localName, String qName,
               Attributes attributes) throws SAXException {
    tags.push(qName);
             }
             
              public void endElement(String uri, String localName, String qName)
      throws SAXException{
    tags.pop();
    }         public void characters (char ch[], int start, int length)
    throws SAXException{
    String tag = (String)tags.peek();
    if(tag.equalsIgnoreCase("Command")){  //Login 
                           System.out.println(new String(ch, start, length));
                      }
                      if(tag.equalsIgnoreCase("Message_id"){ //0
                           System.out.println(new String(ch, start, length));
                      }
                      ……
              } public void test(String file){
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser saxParser = null;
    XMLReader xmlReader = null;

    try {
    saxParser = spf.newSAXParser();
    xmlReader = saxParser.getXMLReader();

    xmlReader.setContentHandler(this);
    try {
    saxParser.parse(new File(file), this);
    } catch (IOException e) {
             e.printStackTrace();
    }
    } catch (ParserConfigurationException e) {
    e.printStackTrace();
    } catch (SAXException e) {
    e.printStackTrace();
    }
    }
    }