为了账号安全,请及时绑定邮箱和手机立即绑定

SAX解析xml

package XMLSAX2;

import java.util.ArrayList;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class SAXParserHander extends DefaultHandler {
	int studentindex=0;
	String value=null;
	Person person=null;
	private ArrayList<Person> personList=new ArrayList<Person>();
	public ArrayList<Person> getPersonList() {
		return personList;
	}
	@Override
	public void startElement(String arg0, String arg1, String arg2,
			Attributes arg3) throws SAXException {
		// TODO Auto-generated method stub
		super.startElement(arg0, arg1, arg2, arg3);
		if(arg2.equals("student")){
			 person=new Person();
			studentindex++;
			System.out.println("=====开始遍历第"+studentindex+"学生=====");
		}
		if(arg2.equals("name")){
			System.out.print("属性名为:"+arg2);
		}
		if(arg2.equals("age")){
			System.out.print("属性名为:"+arg2);
		}
		if(arg2.equals("number")){
			System.out.print("属性名为:"+arg2);
		}
	}
	@Override
	public void endElement(String arg0, String arg1, String arg2)
			throws SAXException {
		// TODO Auto-generated method stub
		super.endElement(arg0, arg1, arg2);
		if(arg2.equals("student")){
			
			personList.add(person);
			
			System.out.println(person.getAge()+"  "+person.getName()+"  "+person.getNumber());
			System.out.println("=====结束遍历第"+studentindex+"学生=====");
			person=null;
		}
		if(arg2.equals("name")){
			person.setName(value);
		}
		if(arg2.equals("age")){
			person.setAge(value);
		}
		if(arg2.equals("number")){
			person.setNumber(value);
		}
		
	}
	@Override
	public void startDocument() throws SAXException {
		// TODO Auto-generated method stub
		super.startDocument();
		System.out.println("开始遍历xml文件");
	}
	@Override
	public void endDocument() throws SAXException {
		// TODO Auto-generated method stub
		super.endDocument();
		System.out.println("结束遍历xml文件");
	}
	@Override
	public void characters(char[] arg0, int arg1, int arg2) throws SAXException {
		// TODO Auto-generated method stub
		super.characters(arg0, arg1, arg2);
		value=new String(arg0,arg1,arg2);
		if(!value.trim().equals("")){
		System.out.println("-----属性值为:"+value);
		}
	}
	
}

测试的时候 xml内容可以存入对象当中,可是new SAXParserHander().getArrayList().size() 输出为0?

正在回答

1 回答

 SAXParserHander类里头getArrayList()的方法在哪?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java眼中的XML---文件读取
  • 参与学习       83198    人
  • 解答问题       431    个

通过Java认识并且创造XML文件,如何应用 Java“解析 XML

进入课程

SAX解析xml

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信