XML---使用DOM4j解析(实例)

public class Student {
	
	private String id;
	private String name;
	private Integer age;
	private Double score;

}
import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class TestDOM4J {

	public static void main(String[] args) throws DocumentException {
		//0.引入jar包
		
		//1.读取文件形成DOM树
		SAXReader  reader = new SAXReader();
		Document doc = reader.read(new File("students.xml"));
		
		//2.获取根节点students
		Element studentsElem = doc.getRootElement();
		
		//3.从根节点students中获取所有的student信息
		Iterator<Element> it = studentsElem.elementIterator();
		//4.处理所有的student信息
		while(it.hasNext()){
			//取出一个学生信息
			Element stuElem = it.next();
			//获取一个学生的所有属性并输出:id
			List<Attribute> attributes = stuElem.attributes();
			for(Attribute attr:attributes){
				String aname = attr.getName();
				String atext = attr.getText();
				System.out.println(aname+"-----"+atext);
			}
			//获取一个学生的所有子元素并输出:name age score
			Iterator<Element> it2 = stuElem.elementIterator();
			while(it2.hasNext()){
				//获取一个子元素 name or age or score
				Element nasElem = it2.next();
				//获取一个子元素名称: name  age score
				String ename = nasElem.getName();
				//获取一个子元素的文本:李明   23  89
				String etext = nasElem.getText();
				//输出
				System.out.println(ename+"------>"+etext);
			}
			System.out.println();
		}
	}
}

import java.io.File;
import java.util.Iterator;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class TestDom4j2 {
	
	/*
	 * dom4j解析xml文档
	 */
	public static void main(String[] args) throws DocumentException {
		
		//1 引入jar包
		//2 读取文件形成DOM树
		SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("students.xml"));
		//3:获取根节点
		Element rootElement = doc.getRootElement();
		//4:获取根节点的子节点
		Iterator<Element> it = rootElement.elementIterator();
		//5:遍历子节点
		while(it.hasNext()){
			//获取子节点
			Element stu = it.next();
			//获取student节点属性 id
			Attribute att = stu.attribute("id");
			System.out.println(att.getName()+":"+att.getText());  //获取属性名    获取属性值

			//获取stu的子节点
			Iterator<Element> it2 = stu.elementIterator();
			while(it2.hasNext()){
				Element next = it2.next();
				//获取name,age,score的内容值
				String eName = next.getName();//获取节点名
				String value = next.getText();//获取节点内容值
				System.out.println(eName+":"+value);
			}
			System.out.println("-----------------");
		}
	
	}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值