`
arual
  • 浏览: 11176 次
社区版块
存档分类
最新评论

javaee笔记之Dom4j 使用实例

    博客分类:
  • jee
 
阅读更多
<?xml version="1.0" encoding="GBK"?>  //startDocument
<书架>// startElement     //character
	<书 ISBN="a" 出版社="高等教育出版社">// startElement 
		<书名>javaee 入门</书名>// endElement
		<作者>Pole</作者>
		<售价>39.00</售价>
	</书>
	<书 ISBN="b">
		<书名>JavaScript入门</书名>
		<作者>Francois</作者>
		<售价>28.00</售价>
	</书>
</书架>
//endDocument

 

 

用Dom4J 来解析:

public class Dom4JDemo {
//	1、得到某个具体的节点内容:第2本书的作者
	@Test
	public void test1() throws Exception{
		//得到Document对象
		SAXReader reader = new SAXReader();
		Document document = reader.read("src/book.xml");
		//得到根元素
		Element root = document.getRootElement();
		//依次得到第2本书的作者
		List<Element> es = root.elements("书");
		Element e = es.get(1);
		Element author = e.element("作者");
		//拿到内容打印输出
//		System.out.println(author.getText());
		Assert.assertEquals("Francois", author.getText());
	}
	@Test
	public void test11() throws Exception{
		//得到Document对象
		SAXReader reader = new SAXReader();
		Document document = reader.read("src/book.xml");
		
		String xpath = "//书[2]/作者";
		Node author = document.selectSingleNode(xpath);
		
		//Assert.assertEquals("Francois", author.getText());
	}
//	2、遍历所有元素节点:
	@Test
	public void test2() throws Exception{
		//得到Document对象
		SAXReader reader = new SAXReader();
		Document document = reader.read("src/book.xml");
		//得到根元素
		Element root = document.getRootElement();
		treeWalk(root);//遍历所有的元素,打印他的名称
	}
	private void treeWalk(Element root) {
		System.out.println(root.getName());
		List<Element> es = root.elements();
		for(Element e:es){
			treeWalk(e);
		}
	}
//	private void treeWalk(Element root){
//		System.out.println(root.getName());
//		//节点的数量
//		int count = root.nodeCount();
//		for(int i=0;i<count;i++){
//			Node node = root.node(i);//取索引上节点
//			if(node.getNodeType()==Node.ELEMENT_NODE){
//				treeWalk((Element)node);
//			}
//		}
//	}
	
//	3、修改某个元素节点的主体内容:修改第2本书的售价
	@Test
	public void test3() throws Exception{
		//得到Document对象
		SAXReader reader = new SAXReader();
		Document document = reader.read("src/book.xml");
		//得到根元素
		Element root = document.getRootElement();
		//得到第2本书的售价
		Element secondBook = (Element) root.elements().get(1);
		Element secondBookPrice = secondBook.element("售价");
		//设置主体内容
		secondBookPrice.setText("8.00");
		//写回XML文档
		OutputStream out = new FileOutputStream("src/book.xml");
		OutputFormat format = OutputFormat.createPrettyPrint();
//		format.setEncoding("UTF-8");//指定编码:这是默认编码
		XMLWriter writer = new XMLWriter(out, format);
		writer.write(document);
		writer.close();
	}
//	4、向指定元素节点中增加子元素节点:给第1本书添加批发价
	@Test
	public void test4()throws Exception{
		//得到Document对象
		SAXReader reader = new SAXReader();
		Document document = reader.read("src/book.xml");
		//得到根元素
		Element root = document.getRootElement();
		
		//找到第1本书:直接添加新元素
		Element firstBook = root.element("书");
		firstBook.addElement("批发价").setText("1");
		
		
		//写回XML文档
		OutputStream out = new FileOutputStream("src/book.xml");
		OutputFormat format = OutputFormat.createPrettyPrint();
//		format.setEncoding("UTF-8");//指定编码:这是默认编码
		XMLWriter writer = new XMLWriter(out, format);
		writer.write(document);
		writer.close();
	}
//	5、向指定元素节点上增加同级元素节点:在第一本书的售价前面添加内部价
	@Test
	public void test5()throws Exception{
		//得到Document对象
		SAXReader reader = new SAXReader();
		Document document = reader.read("src/book.xml");
		//得到根元素
		Element root = document.getRootElement();
		
		//找到第1本书
		Element firstBook = root.element("书");
		//得到第1本书的所有子元素:List
		List<Element> children = firstBook.elements();
		//借助DocumentHelper创建内部价元素
		Element price = DocumentHelper.createElement("内部价");
		price.setText("99");
		//挂接到老3的位置上
		children.add(2, price);
		
		//写回XML文档
		OutputStream out = new FileOutputStream("src/book.xml");
		OutputFormat format = OutputFormat.createPrettyPrint();
//		format.setEncoding("UTF-8");//指定编码:这是默认编码
		XMLWriter writer = new XMLWriter(out, format);
		writer.write(document);
		writer.close();
	}
//	6、删除指定元素节点:删除批发价
	@Test
	public void test6()throws Exception{
		//得到Document对象
		SAXReader reader = new SAXReader();
		Document document = reader.read("src/book.xml");
		//得到根元素
		Element root = document.getRootElement();
		
		//找到第1本书
		Element firstBook = root.element("书");
		
		//自己不能删自己
		Element price = firstBook.element("批发价");
		firstBook.remove(price);
		
		
		//写回XML文档
		OutputStream out = new FileOutputStream("src/book.xml");
		OutputFormat format = OutputFormat.createPrettyPrint();
//		format.setEncoding("UTF-8");//指定编码:这是默认编码
		XMLWriter writer = new XMLWriter(out, format);
		writer.write(document);
		writer.close();
	}
//	7、操作XML文件属性:第1本书添加一个出版社属性
	@Test
	public void test7()throws Exception{
		//得到Document对象
		SAXReader reader = new SAXReader();
		Document document = reader.read("src/book.xml");
		//得到根元素
		Element root = document.getRootElement();
		
		//找到第1本书
		Element firstBook = root.element("书");
		
		firstBook.addAttribute("出版社", "高等教育出版社");
		
		
		//写回XML文档
		OutputStream out = new FileOutputStream("src/book.xml");
		OutputFormat format = OutputFormat.createPrettyPrint();
//		format.setEncoding("UTF-8");//指定编码:这是默认编码
		XMLWriter writer = new XMLWriter(out, format);
		writer.write(document);
		writer.close();
	}
	//获取第一本书的出版社属性值
	@Test
	public void test8()throws Exception{
		//得到Document对象
		SAXReader reader = new SAXReader();
		Document document = reader.read("src/book.xml");
		//得到根元素
		Element root = document.getRootElement();
		
		//找到第1本书
		Element firstBook = root.element("书");
		
		String value = firstBook.attributeValue("出版社");
		Assert.assertEquals("高等教育出版社", value);
		
		
	}
}

 

分享到:
评论

相关推荐

    JavaEE源代码 dom4j-1.6.1

    JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源...

    JavaEE源代码 log4j-1.2.14

    JavaEE源代码 log4j-1.2.14JavaEE源代码 log4j-1.2.14JavaEE源代码 log4j-1.2.14JavaEE源代码 log4j-1.2.14JavaEE源代码 log4j-1.2.14JavaEE源代码 log4j-1.2.14JavaEE源代码 log4j-1.2.14JavaEE源代码 log4j-1.2.14...

    JavaEE源代码 log4j-1.2.11

    JavaEE源代码 log4j-1.2.11JavaEE源代码 log4j-1.2.11JavaEE源代码 log4j-1.2.11JavaEE源代码 log4j-1.2.11JavaEE源代码 log4j-1.2.11JavaEE源代码 log4j-1.2.11JavaEE源代码 log4j-1.2.11JavaEE源代码 log4j-1.2.11...

    JAVAEE系列笔记2JAVAEE系列笔记2

    JAVAEE系列笔记2JAVAEE系列笔记2JAVAEE系列笔记2JAVAEE系列笔记2JAVAEE系列笔记2JAVAEE系列笔记2JAVAEE系列笔记2

    JAVAEE课堂笔记

    JAVAEE课堂笔记

    dom4j 1.6.1 jar包 zip

    **正文** `dom4j 1.6.1 jar包 zip`是针对Java开发者的一款重要工具,它是一个灵活且功能强大的库,专为处理XML文档而设计。...对于JavaEE和MyBatis开发者而言,理解和熟练使用DOM4J是提高开发效率和代码质量的关键。

    JAVAEE系列笔记1.pdf

    JAVAEE系列笔记1.pdfJAVAEE系列笔记1.pdfJAVAEE系列笔记1.pdfJAVAEE系列笔记1.pdf

    javaEE笔记

    javaEE学习资源笔记和数月的学习的笔记学习过程的知识

    dom4j,javaee,jquery,JS,spring,hibernate,h5中文API

    本资源集合涵盖了多个重要的技术领域,包括XML解析(DOM4J),Java企业级应用(JavaEE),客户端脚本语言JavaScript及其库jQuery,以及后端开发中的Spring框架和Hibernate ORM。此外,还包含了HTML5的中文API文档,...

    全套java笔记javaEE(上)

    【Java全套笔记】JavaEE(上)是一套全面的Java后端开发学习资料,涵盖了从基础到进阶的多个主题,旨在帮助开发者深入理解和掌握JavaEE技术栈。这份笔记集合了多个关键知识点,包括设计模式、开发工具的使用、实战...

    javaEE学习笔记

    本学习笔记涵盖了JavaEE的核心技术,帮助学习者深入理解和掌握javaweb的各项技能。 1. **Servlet与JSP** - **Servlet**:Servlet是Java编写的服务器端程序,主要用于扩展服务器的功能。在JavaEE中,Servlet处理...

    javaEE笔记自学笔记

    JavaEE 笔记自学笔记 JavaEE 是一种非常流行的动态网页开发技术,本笔记旨在记录 JavaEE 的一些基础知识和开发环境的搭建。 动态网页和静态网页 动态网页是指同一页面,不同的用户、相同的用户在不同的时间访问,...

    dom4j.jar(xml操作包)

    在JavaEE和J2EE开发中,DOM4J广泛应用于Web服务、数据交换、配置文件处理、XML数据绑定等领域。与其它XML库相比,DOM4J因其易用性和高效性而受到开发者青睐。 在项目中使用DOM4J时,通常会将其作为依赖库引入。`dom...

    javaee的杂乱笔记

    ### JavaEE核心概念详解 #### 模型-视图-控制器 (MVC) 架构模式 MVC架构模式是JavaEE中非常重要的一个概念,主要用于构建清晰且可维护的应用程序。 - **Model(模型)**:是应用程序的核心组件,负责处理应用程序...

    javase和javaee学习笔记

    javase和javaee学习笔记, 下载绝对没错, 这是自己在学习的时候写的笔记包括javase和javaee

    轻量级javaEE笔记

    【轻量级JavaEE笔记】 JavaEE,全称Java Platform, Enterprise Edition,是Java平台针对企业级应用开发的一个标准和框架。轻量级JavaEE,通常指的是使用一系列轻量级框架来替代传统的JavaEE规范,以减少系统复杂度...

    JavaEE笔记(chorar)

    这份"JavaEE笔记(chorar)"涵盖了从基础到进阶的多个方面,可以帮助开发者深入理解和掌握JavaEE的核心技术。下面我们将详细探讨与标签相关的JavaEE关键技术:Servlet、JSP。 Servlet是JavaEE中的服务器端组件,它...

    JavaEE学习笔记.pdf

    "JavaEE学习笔记.pdf" JavaEE(Java Enterprise Edition)是Java平台的企业版,用于开发大型...JavaEE学习笔记.pdf提供了JavaEE的基础知识、技术栈、开发工具、应用场景、学习资源、面试常见问题和应用实例等内容。

    javaEE 笔记

    JavaEE,全称为Java Platform, Enterprise Edition,是一个用于开发企业级应用程序的框架,它提供了丰富的组件和服务,包括Servlet、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)等,来构建分布式、多层的...

    javaee笔记

    4. **Filter**:Filter是JavaEE中的一个过滤器接口,允许在请求被Servlet处理之前或之后执行预处理和后处理操作,如登录验证、GZIP压缩等。 5. **MySQL & JDBC**:MySQL是一款流行的开源关系型数据库管理系统,JDBC...

Global site tag (gtag.js) - Google Analytics