XML5-XML解析之dom4j

课时31: dom4j的简介

dom4j是一个组织,针对xml解析提供了解析器dom4j。
dom4j不是javase的一部分,想要使用第一步需要导入dom4j提供的jar包
创建文件夹——复制jar包到该文件夹——build path——add to buildpath
1、得到document

SAXReader reder=new SAXReader ();
Document document=reder.read(url);

2、document的父接口为Node,如果在document找不到想要方法,可以去父接口找

课时32: 使用dom4j实现查询xml操作

需求:查询全部或第一个或第二个name元素的值;、

    public static void selectNmae() throws Exception{
    	//1  创建解析器
    	SAXReader saxreder=new SAXReader();
    	//2 得到document
    	Document document=saxreder.read("src/1.xml");
    	//3 得到根节点
    	Element telement =document.getRootElement();
    	/**
    	 * 得到全部name
    	 */
    	//4 得到p1
    	List<Element> list =telement.elements("p1");
    	//5 遍历list
		System.out.println("所有name:");
    	for(Element element :list){
    		//element 是每一个p1的元素
    		//6 得到第一个name
    		Element name1=element.element("name");
    		//7 得到name的值
    		String nametext1=name1.getText();
    		System.out.println(nametext1);
    	}
    	/**
    	 * 得到第一个name
    	 */
    	Element listp1=telement.element("p1");
    	Element name1=listp1.element("name");
    	String nametext1=name1.getTextTrim();
    	System.out.println("第一个name:"+nametext1);
    	/**
    	 *得到第二个name
    	 */
    	Element p2=list.get(1);
    	Element name2=p2.element("name");
    	String nametext2=name2.getText();
    	System.out.println("第二个name:"+nametext2);

}

课时33: 使用dom4j实现在末尾添加节点的操作

需求:在第一个p1添加nan

public static void addsex() throws DocumentException, IOException{
		//1  创建解析器
    	SAXReader saxreder=new SAXReader();
    	//2 得到document
    	Document document=saxreder.read("src/1.xml");
    	//3 得到根节点
    	Element telement =document.getRootElement();
    	//得到第一个p1
    	Element listp1=telement.element("p1");
    	//添加元素
    	Element sex=listp1.addElement("sex");
    	//添加文本
    	sex.setText("nan");
    	//回写
    	//格式化
    	OutputFormat format=OutputFormat.createPrettyPrint();
    	//压缩
    	//OutputFormat format=OutputFormat.createCompactFormat();
    	XMLWriter tXMLWriter=new XMLWriter(new FileOutputStream("src/1.xml"),format);
    	tXMLWriter.write(document);
    	tXMLWriter.close();
	}

课时34: 使用dom4j实现在在特定位置添加节点的操作

需求:在第一个age之前添加lanzhouligong

public static void addindex() throws Exception{
		//1  创建解析器
    	SAXReader saxreder=new SAXReader();
    	//2 得到document
    	Document document=saxreder.read("src/1.xml");
    	//3 得到根节点
    	Element root =document.getRootElement();
    	//得到第一个p1
    	Element listp1=root.element("p1");
    	/**获取p1下面的所有元素
    	 * element()方法返回list集合
    	 * 使用list里面的方法,在特定位置添加元素
    	 *  add(int index, E element);index为下标,从零开始,第二个为添加的元素
    	 */
    	List<Element> list=listp1.elements();
    	//创建需要添加的元素
    	Element tSchool=DocumentHelper.createElement("school");
    	tSchool.setText("lanzhouligong");
    	list.add(1,tSchool);//特定位置添加
    	//回写
    	OutputFormat format=OutputFormat.createPrettyPrint();
    	XMLWriter tXMLWriter=new XMLWriter(new FileOutputStream("src/1.xml"),format);
    	tXMLWriter.write(document);
    	tXMLWriter.close();
	}

课时35: dom4j里面封装方法的操作

课时36: 使用dom4j实现修改的操作

需求:修改第一个p1的age值为99

public static void updateAge() throws DocumentException, IOException{
		//1  创建解析器
    	SAXReader saxreder=new SAXReader();
    	//2 得到document
    	Document document=saxreder.read("src/1.xml");
    	//3 得到根节点
    	Element root =document.getRootElement();
    	//得到第一个p1
    	Element listp1=root.element("p1");
    	Element age=listp1.element("age");
    	age.setText("30");
    	//回写
    	OutputFormat format=OutputFormat.createPrettyPrint();
    	XMLWriter tXMLWriter=new XMLWriter(new FileOutputStream("src/1.xml"),format);
    	tXMLWriter.write(document);
    	tXMLWriter.close();
	}

课时37: 使用dom4j实现删除节点的操作

public static void deleteAge() throws DocumentException, IOException{
		//1  创建解析器
    	SAXReader saxreder=new SAXReader();
    	//2 得到document
    	Document document=saxreder.read("src/1.xml");
    	//3 得到根节点
    	Element root =document.getRootElement();
    	//得到第一个p1
    	Element listp1=root.element("p1");
    	Element age=listp1.element("age");
    	listp1.remove(age);
    	//回写
    	OutputFormat format=OutputFormat.createPrettyPrint();
    	XMLWriter tXMLWriter=new XMLWriter(new FileOutputStream("src/1.xml"),format);
    	tXMLWriter.write(document);
    	tXMLWriter.close();
	}

课时38: 使用dom4j实现获取属性值的操做

public static void deleteAge() throws DocumentException, IOException{
		//1  创建解析器
    	SAXReader saxreder=new SAXReader();
    	//2 得到document
    	Document document=saxreder.read("src/1.xml");
    	//3 得到根节点
    	Element root =document.getRootElement();
    	//得到第一个p1
    	Element listp1=root.element("p1");
    	System.out.println(listp1.attributeValue("id"));
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值