xml解析为Java程序
package xml01;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
- 使用DOM解析XML文件
- @author Administrator
/
public class xmlDemo01 {
public static void main(String []args){
try{
//org.dom4j.xxxx
SAXReader reader= new SAXReader();//创建SAXReader,用来读取XML文件
File xmlFile = new File("emp.xml");//指定xml文件使得SAXReader读取,并解析问文档对象Document
/
* read方法的作用:读取给定的xml,并将其解析转换为 一个Document对象。
* 实际上这里已经完成了对整个xml解析的工作。并将所有内容封装到了Document对象中。
* Document对象可以描述当前xml文档
/
Document doc = reader.read(xmlFile);
Element root = doc.getRootElement();//获取根元素
List<Element> elements = root.elements();//获取当前标签下的所有子标签。
/
* 创建一个集合,用于保存xml中的每一个用户信息。我们先将用户信息取出,然后创建一个Emp例,
* 将信息设置到该实例的相应属性上。最终将所有emp对象存入该集合。
/
List<Emp> list= new ArrayList<Emp>();//
for(Element emp : elements){//遍历每一个emp标签
Emp e = new Emp();//创建一个Emp对象,用于保存信息
Element ename = emp.element("name");//首先,获取名为"name"的子标签
String name = ename.getText(); //其次,获取前后标签中间的文本
int age = Integer.parseInt(emp.elementText("age"));//获取年龄
String gender= emp.elementText("gender");//解析性别
int salary= Integer.parseInt(emp.elementText("salary"));//解析工资
e.setAge(age);
e.setName(name);
e.setGender(gender);
e.setSalary(salary);
/
* 通过Element获取元素属性Attribute attribute(String name)获取当前标签中指定名字的属性
/
Attribute attr = emp.attribute("id");//获取id属性
/
* Attribute表示一个属性,获取该属性的值常用方法:
* String getValue()获取该属性的值
* String getName()获取该属性的名字
*/
int id =Integer.parseInt(attr.getValue());
e.setId(id);
//将Emp对象存入集合
list.add(e);
}
System.out.println("解析了"+list.size()+"个员工信息");
//输出每一个员工信息
for(Emp e : list){
System.out.println(e);
}
}catch(Exception e){
e.getMessage();
}
}
}