DOM4J解析xml文件

DOM4J为非官方提供的,在使用前需到官网自行下载,并在项目中导入jar包在该项目上右击(选择build path,后选择Add external archives,最后在选择刚才下载的jar包)

详细步骤如下(解析以下简易xml文件)

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book id="1">
<name>活着</name>
<author>余华</author>
<price>89</price>
</book>
<book id="2">
<name>雪落香杉树</name>
<author>戴维.加特森</author>
<price>77</price>
</book>
</bookstore

 

 

package dom4j;

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 Dom4jTest {

	public static void main(String[] args) {
		//创建SAXReader对象
		SAXReader sr = new SAXReader();
		try {
			//通过SAXReader对象的read方法加载xml文件
			Document document = sr.read(new File("books.xml"));
			//通过document对象获取根节点
			Element bookstore = document.getRootElement();
			//通过element的elementIterator方法获取迭代器
			Iterator books = bookstore.elementIterator();
			//遍历迭代器
			while(books.hasNext()){
				Element element = (Element) books.next();
				//通过attributes方法获取属性信息
				List attr = element.attributes();
				//遍历属性信息
				for(Attribute a : attr){
					System.out.println("属性名"+a.getName()+"--属性值"+a.getValue());
				}
				//通过elementIterator方法继续获取迭代器获取子节点信息
				Iterator it=element.elementIterator();
				//遍历迭代器
				while(it.hasNext()){
					Element element1=(Element) it.next();
					System.out.println("节点名:"+element1.getName()+"节点值:"+element1.getStringValue());
					
				}

			}
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
} attr = element.attributes();
				//遍历属性信息
				for(Attribute a : attr){
					System.out.println("属性名"+a.getName()+"--属性值"+a.getValue());
				}
				//通过elementIterator方法继续获取迭代器获取子节点信息
				Iterator it=element.elementIterator();
				//遍历迭代器
				while(it.hasNext()){
					Element element1=(Element) it.next();
					System.out.println("节点名:"+element1.getName()+"节点值:"+element1.getStringValue());
					
				}

			}
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值