DOM4J

DOM4J

DOM4J的解析(必须会,企业中用的多)

		* 先下载DOM4J相应的jar包。导入工程中,才能使用。
		* 把dom4j-1.6.1.jar导入到工程中。
		* WEB项目:复制dom4j-1.6.1.jar到	WebRoot -- WEB-INF -- lib里面。就ok。

获取第二本书作者的文本内容

public static void run1() throws DocumentException {
	//获取解析器对象
	SAXReader reader = new SAXReader();
	//解析xml,返回Document对象
	Document document= reader.read("src/book2.xml");
	//获取根节点(书架标签)
	Element root = document.getRootElement();
	//获取第二本书的节点
	List<Element> list =  root.elements();
	Element book2 = list.get(1);
	//获取作者的标签
	Element author2 = book2.element("作者");
	//获取文本内容
	System.out.println(author2.getText());
}

<?xml version="1.0" encoding="UTF-8"?>
<书架> 
  <书 出版社="b2"> 
    <!-- 字符串 -->  
    <书名>javaweb开发大全</书名>  
    <作者 性别="男">张三</作者>  
    <!-- 枚举 -->  
    <售价>50</售价>  
    <简介>非常不错</简介>  
    <!--<猫></猫>这就是约束  --> 
  </书>  
  <书> 
    <书名/>葵花宝典 
    <团购价>9.9</团购价><作者>岳不群</作者>  
    <简介>欲练此功</简介>  
      
      
      
      
    <年代>上古时代</年代>  
    <年代>上古时代</年代>
  </书> 
</书架>

添加子节点

在第二本书下添加子节点

public static void run2() throws DocumentException, IOException, Exception{
	//获取解析器对象
	SAXReader reader = new SAXReader();
	//解析xml,返回Document对象
	Document document= reader.read("src/book2.xml");
	//获取根节点(书架标签)
	Element root = document.getRootElement();
	//获取第二本书
	List<Element> list = root.elements("书");
	Element book2 = list.get(1);
	//创建节点.设置文本内容
	book2.addElement("年代").setText("上古时代");
	
	//创建漂亮格式
	OutputFormat format = OutputFormat.createPrettyPrint();
	//回写
	XMLWriter writer = new XMLWriter(new FileOutputStream("src/book2.xml"),format);
	writer.write(document);
	//关流
	writer.close();
	
}

在指定位置添加子节点

在第二本书的作者标签之前添加团购价标签

public static void run3() throws Exception{
	//获取解析器对象
	SAXReader reader = new SAXReader();
	//解析xml,返回Document对象
	Document document= reader.read("src/book2.xml");
	//获取根节点(书架标签)
	Element root = document.getRootElement();
	//获取第二本书
	Element book2 =(Element) root.elements("书").get(1);
	
	//获取书下的所有子节点,返回List集合
	List<Element> list = book2.elements();
	//创建元素对象	DocumentHelper.createElement("狗");
	Element tuangou = DocumentHelper.createElement("团购价");
	tuangou.setText("9.9");
	//list.add(index,Element);
	list.add(1,tuangou);
	
	//回写
	XMLWriter writer = new XMLWriter(new FileOutputStream("src/book2.xml"));
	writer.write(document);
	writer.close();
}

删除

public static void run4() throws Exception{
	//获取解析器对象
	SAXReader reader = new SAXReader();
	//解析xml,返回Document对象
	Document document= reader.read("src/book2.xml");
	//获取根节点(书架标签)
	Element root = document.getRootElement();
	//获取第二本书
	Element book2 =(Element) root.elements("书").get(1);
	Element niandai = book2.element("年代");
	//删除/修改
	book2.remove(niandai);
	//niandai.setText("现代");
	//回写
	XMLWriter writer = new XMLWriter(new FileOutputStream("src/book2.xml"));
	writer.write(document);
	//关流
	writer.close();
}

对xpth的支持

必须导包jaxen-1.1-beta-6.jar

selectNodes("/AAA")			返回集合
selectSingleNode()		一个Node对象
			
参数就是xpath的语法
	/AAA/BBB			获取BBB的节点
	//BBB				无论层级关系,找到BBB的节点
	*					代表是所有
	/AAA/BBB[1]		找到BBB的第一个		/AAA/BBB[last()]	最后一个
	@					属性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值