<?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.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.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.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系列笔记2JAVAEE系列笔记2JAVAEE系列笔记2JAVAEE系列笔记2JAVAEE系列笔记2JAVAEE系列笔记2
JAVAEE课堂笔记
**正文** `dom4j 1.6.1 jar包 zip`是针对Java开发者的一款重要工具,它是一个灵活且功能强大的库,专为处理XML文档而设计。...对于JavaEE和MyBatis开发者而言,理解和熟练使用DOM4J是提高开发效率和代码质量的关键。
JAVAEE系列笔记1.pdfJAVAEE系列笔记1.pdfJAVAEE系列笔记1.pdfJAVAEE系列笔记1.pdf
javaEE学习资源笔记和数月的学习的笔记学习过程的知识
本资源集合涵盖了多个重要的技术领域,包括XML解析(DOM4J),Java企业级应用(JavaEE),客户端脚本语言JavaScript及其库jQuery,以及后端开发中的Spring框架和Hibernate ORM。此外,还包含了HTML5的中文API文档,...
【Java全套笔记】JavaEE(上)是一套全面的Java后端开发学习资料,涵盖了从基础到进阶的多个主题,旨在帮助开发者深入理解和掌握JavaEE技术栈。这份笔记集合了多个关键知识点,包括设计模式、开发工具的使用、实战...
本学习笔记涵盖了JavaEE的核心技术,帮助学习者深入理解和掌握javaweb的各项技能。 1. **Servlet与JSP** - **Servlet**:Servlet是Java编写的服务器端程序,主要用于扩展服务器的功能。在JavaEE中,Servlet处理...
JavaEE 笔记自学笔记 JavaEE 是一种非常流行的动态网页开发技术,本笔记旨在记录 JavaEE 的一些基础知识和开发环境的搭建。 动态网页和静态网页 动态网页是指同一页面,不同的用户、相同的用户在不同的时间访问,...
在JavaEE和J2EE开发中,DOM4J广泛应用于Web服务、数据交换、配置文件处理、XML数据绑定等领域。与其它XML库相比,DOM4J因其易用性和高效性而受到开发者青睐。 在项目中使用DOM4J时,通常会将其作为依赖库引入。`dom...
### JavaEE核心概念详解 #### 模型-视图-控制器 (MVC) 架构模式 MVC架构模式是JavaEE中非常重要的一个概念,主要用于构建清晰且可维护的应用程序。 - **Model(模型)**:是应用程序的核心组件,负责处理应用程序...
javase和javaee学习笔记, 下载绝对没错, 这是自己在学习的时候写的笔记包括javase和javaee
【轻量级JavaEE笔记】 JavaEE,全称Java Platform, Enterprise Edition,是Java平台针对企业级应用开发的一个标准和框架。轻量级JavaEE,通常指的是使用一系列轻量级框架来替代传统的JavaEE规范,以减少系统复杂度...
这份"JavaEE笔记(chorar)"涵盖了从基础到进阶的多个方面,可以帮助开发者深入理解和掌握JavaEE的核心技术。下面我们将详细探讨与标签相关的JavaEE关键技术:Servlet、JSP。 Servlet是JavaEE中的服务器端组件,它...
"JavaEE学习笔记.pdf" JavaEE(Java Enterprise Edition)是Java平台的企业版,用于开发大型...JavaEE学习笔记.pdf提供了JavaEE的基础知识、技术栈、开发工具、应用场景、学习资源、面试常见问题和应用实例等内容。
JavaEE,全称为Java Platform, Enterprise Edition,是一个用于开发企业级应用程序的框架,它提供了丰富的组件和服务,包括Servlet、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)等,来构建分布式、多层的...
4. **Filter**:Filter是JavaEE中的一个过滤器接口,允许在请求被Servlet处理之前或之后执行预处理和后处理操作,如登录验证、GZIP压缩等。 5. **MySQL & JDBC**:MySQL是一款流行的开源关系型数据库管理系统,JDBC...