xml:
<people>
<student id = "123">
<name>zy</name>
<age>15</age>
<address>sichuan</address>
</student>
<student id = "9988">
<name>sunyanzi</name>
<age>15</age>
<address>xjp</address>34
</student>
</people>
**********************用SAX读取XML的数据,将数据封装成一个MAP*********************
public class SaxTest {
public static void main(String[] args) throws ParserConfigurationException,
SAXException, IOException {
SAXParserFactory saxfactory = SAXParserFactory.newInstance();
SAXParser saxpa = saxfactory.newSAXParser();
SaxHandler saxHandler = new SaxHandler();
saxpa.parse("src/SAX/two.xml", saxHandler);
System.out.println(saxHandler.array);
}
}
class SaxHandler extends DefaultHandler {
ArrayList<HashMap<String, String>> array;
String flag = "";
int sum = 0;
public void startDocument() throws SAXException {
array = new ArrayList<HashMap<String, String>>();
}
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
if ("student".equals(name)) {
HashMap<String, String> hp = new HashMap<String, String>();
for (int i = 0; i < attributes.getLength(); i++) {
hp.put(attributes.getQName(i), attributes.getValue(i));
}
array.add(hp);
}
flag = name;
}
public void characters(char[] ch, int start, int length)
throws SAXException {
if (flag.equals("name")) {
array.get(sum).put("name", new String(ch, start, length));
} else if (flag.equals("age")) {
array.get(sum).put("age", new String(ch, start, length));
} else if (flag.equals("address")) {
array.get(sum).put("address", new String(ch, start, length));
}
}
public void endElement(String uri, String localName, String name)
throws SAXException {
if (name.equals("student")) {
sum++;
}
flag = "";
}
}