使用java类解析xml文件的步骤:
1、确定输入流
SAXReader reader=new SAXReader();
2、获取Document对象
Document document=reader.read(new File("config/emp.xml"));
3、获取根节点
Element rootElement=document.getRootElement();
4、使用迭代器迭代根节点下的子节点
Iterator<Element> it=rootElement.elementIterator();
while(it.hasNext()){
Emp emp=new Emp();
Element element=it.next();
}
5、获取属性节点,获取节点对象的属性值getValue()
//String id=element.attribute("id").getValue();
System.out.println(element.attributeValue("id"));
emp.setId(element.attributeValue("id"));
6、迭代子节点下的子节点
Iterator<Element> it2=element.elementIterator();
while(it2.hashNext()){
Element element2=it.next();
//getText()获取节点的值
System.out.println("\t"+element2.getText());
if(element2.getName().equals("name")){
emp.setName(element2.getText());
}
if(element2.getName().equals("age")){
emp.setAge(Integer.parseInt(element2.getText()));
}
}
例子:
xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<emps>
<emp id="001">
<name>admin</name>
<age>18</age>
<salary>80000</salary>
</emp>
<emp id="002">
<name>zhangsan</name>
<age>18</age>
<salary>60000</salary>
</emp>
</emps>
解析xml的java文件如下:
public class ReadXML {
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
List<Emp> empList = new ArrayList<>();
//1.确定输入流
SAXReader reader = new SAXReader();
//2.获取Docuemnt对象
Document document = reader.read(new File("config/emp.xml"));
//3.获取根节点
Element rootElement = document.getRootElement();
System.out.println(rootElement.getName());
//4.使用迭代器迭代emps节点下的子节点
Iterator<Element> it = rootElement.elementIterator();
while(it.hasNext()){
Emp emp = new Emp();
// <emp id="0001">
Element element = it.next();
System.out.println(element.getName());
//5.获取属性节点attribute("id"),获取节点对象的属性值getValue()
//String id = element.attribute("id").getValue();
System.out.println(element.attributeValue("id"));
emp.setId(element.attributeValue("id"));
//6.迭代emp节点下的子节点
Iterator<Element> it2 = element.elementIterator();
while(it2.hasNext()){
Element element2 = it2.next();
//getText()获取节点的值(文本节点)
System.out.println("\t"+element2.getText());
if(element2.getName().equals("name")){
emp.setName(element2.getText());
}
if(element2.getName().equals("age")){
emp.setAge(Integer.parseInt(element2.getText()));
}
if(element2.getName().equals("salary")){
emp.setSalary(Integer.parseInt(element2.getText()));
}
}
empList.add(emp);
}
System.out.println(empList);
}
}