sax解析服务器xml文件,sax解析xml文件问题

sax解析xml文件问题

package com.java.xml;

import java.io.File;

import java.util.ArrayList;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

import org.xml.sax.helpers.DefaultHandler;

public class MyHandler extends DefaultHandler{

ArrayListstudents=null;

StringBuilder builder=null;

Person student=null;

public MyHandler(ArrayList students){

this.students=students;

}

public void startDocument()throws SAXException{

super.startDocument();

//students=new ArrayList();

builder=new StringBuilder();

}

public void startElement(String uri,String localName,String qName,Attributes attributes)throws SAXException{

super.startElement(uri, localName, qName, attributes);

if(localName.equals("student")){

student=new Person();

student.id=new Integer(attributes.getValue("id"));

}

builder.setLength(0);

if(uri==null){System.out.println("uri is null");}

System.out.println(uri);

System.out.println(localName);

System.out.println("s");

}

public void characters(char[]ch,int start,int length)throws SAXException{

super.characters(ch, start, length);

builder.append(ch,start,length);

}

public void endElement(String uri,String localName,String qName)throws SAXException{

super.endElement(uri, localName, qName);

if(localName.equalsIgnoreCase("name")){

student.name=builder.toString();

}else if(localName.equalsIgnoreCase("age")){

student.age=new Integer(builder.toString());

}else if(localName.equals("student")){

students.add(student);

}

}

public void endDocument()throws SAXException{

super.endDocument();

}

public static void main(String[]args){

ArrayList students=new ArrayList();

try{

SAXParserFactory factory=SAXParserFactory.newInstance();

SAXParser parser=factory.newSAXParser();

MyHandler handler=new MyHandler(students);

File f=new File("a.xml");

parser.parse(f, handler);

System.out.println(students.size()+"----end");

}catch(Exception e){

e.printStackTrace();

}

}

}

tyy1

21

tyy2

22

tyy3

23

tyy4

24

为什么输入结果一直为空?

--------------------编程问答--------------------

你的file路径不全,肯定为空啊,写成绝对路径c:\\new.file,或者相对路径都可以

--------------------编程问答--------------------

在文件下边加上

if(f.exists()){

//如果存在就不是一楼说的问题

}

--------------------编程问答--------------------

代码太长,哈哈

563c137b33ae8d6063c370c42dfa953e.gif

补充:Java , Java相关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值