public class MySAXParser {
public static void main(String[] args) throws ParserConfigurationException, SAXException {
//创建解析器工厂
SAXParserFactory saxpf = SAXParserFactory.newInstance();
//创建解析器
SAXParser saxPar = saxpf.newSAXParser();
try {
saxPar.parse("conf/Person.xml", new myDefaultHandler());
} catch (IOException e) {
e.printStackTrace();
}
}
}
class myDefaultHandler extends DefaultHandler{
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
System.out.print("<"+ qName + ">");
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
System.out.print(new String(ch,start,length));
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.print("</" + qName +">");
}
}
==============================================================
//写入
public class MyHandler extends DefaultHandler{
private Person per;
private List<Person> persons;
private String preTag;
public Person getPer() {
return per;
}
public void setPer(Person per) {
this.per = per;
}
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons = persons;
}
public String getPreTag() {
return preTag;
}
public void setPreTag(String preTag) {
this.preTag = preTag;
}
@Override
public void startDocument() throws SAXException {
persons = new ArrayList<>();
}
@Override
public void endDocument() throws SAXException {
System.out.println("整个文档解析完成....");
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if("person".equals(qName)){
per = new Person();
}
preTag = qName;
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
if(per != null && qName.equals("person")){
persons.add(per);
}
preTag = null;
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
// TODO Auto-generated method stub
String data = new String(ch,start,length);
if("name".equals(preTag)){
per.setName(data);
}
if("sex".equals(preTag)){
per.setSex(data);
}
if("email".equals(preTag)){
per.setEmail(data);
}
}
SAX的读写方法
最新推荐文章于 2021-06-28 11:14:45 发布