作者:谢冬波
接连载(1)
下面我们开始编写读取data.xml数据的类,直接应用了java的xml解析组件JDOM,此类中应用的一些基本操作,封装为Util类,代码如下:
package com.jc.test.util;
import java.util.Date;
import java.text.ParseException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class Util {
public Integer parseInteger(String s){
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) {
return null;
}
}
public Date parseDate(String s){
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
try {
return dateFormat.parse(s);
} catch (ParseException e) {
return null;
}
}
public String formatDate(Date date){
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
return dateFormat.format(date);
}
}
package com.jc.test.util;
import java.util.List;
import java.util.ArrayList;
import java.util.Date;
import java.io.InputStream;
import java.io.IOException;
import org.jdom.input.SAXBuilder;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import com.jc.test.entity.User;
public class XmlUtil {
private Util util=new Util();
@SuppressWarnings("unchecked")
public List<User> getAllUsers(){
List<User> listUsers=new ArrayList<User>();
SAXBuilder saxBuilder=new SAXBuilder();
InputStream inputStream=getClass()
.getResourceAsStream("/data.xml");
Document document=null;
try {
document = saxBuilder.build(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
Element rootElement=document.getRootElement();
List<Element> list=rootElement.getChildren();
for(Element ele:list){
String name=ele.getChildText("name");
String ageS=ele.getChildText("age");
Integer age=util.parseInteger(ageS);
String birthDate=ele.getChildText("birthdate");
Date date=util.parseDate(birthDate);
String birthDateString=util.formatDate(date);
User user=new User();
user.setName(name);
user.setAge(age);
user.setBirthDate(date);
user.setBirthDateString(birthDateString);
listUsers.add(user);
}
return listUsers;
}
public static void main(String[] args)
throws JDOMException,IOException{
XmlUtil util=new XmlUtil();
List<User> list=util.getAllUsers();
for(User user:list){
System.out.println(user.getName());
System.out.println(user.getAge());
System.out.println(user.getBirthDateString());
}
}
}