小弟急需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>
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>
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();
}
}
}