使用dom4j解析xml与增删改查
2017-07-17 11:49
357 查看
使用dom4j解析xml
得到document对象
使用dom4j查询xml
使用dom4j实现添加操作
在特定标签前添加一个元素
修改节点内容
删除节点
获取属性的值
dom4j,是一个组织,针对xml解析,提供解析器dom4j dom4j不是jiacase的一部分,想要使用需要导入dom4j提供的jar包
得到document对象
SAXReader reader = new SAXReader(); Document document = reader.read(url); document父接口是Node document里面的方法 getRootElement(): 获取根节点 返回element Element也是一个接口,父节点是Node OutputFormat format = OutputFormat.createPrettyPrint():格式化xml文档
使用dom4j查询xml
1、创建解析器 2、得到document 3、得到根节点 getRootElement() 4、得到所有的p1标签 element(qName):表示获取标签下面的第一个子标签 elements(qName):获取标签下面为qName的子标签(一层) elements():获取标签下面的所有子标签(一层) 5、得到p1下面的name 6、得到name里面的值
public static void selectName() throws Exception { //创建解析器 SAXReader reader = new SAXReader(); //得到Document Document document = reader.read("src/person.xml"); //得到根节点 Element root = document.getRootElement(); //得到p1 List<Element> list = root.elements("p1"); //遍历list for(Element element : list){ Element name1 = element.element("name"); String s = name1.getText(); System.out.println(s); } }
使用dom4j实现添加操作
在p1标签末尾添加一个元素 1、创建解析器 2、得到document 3、得到根节点 4、获取第一个p1(使用element方法) 5、在p1下面添加元素(使用addElement方法) 6、在添加完成之后的元素下面添加文本 7、回写xml
public static void addAge() throws Exception{ //创建解析器 SAXReader reader = new SAXReader(); //得到Document Document document = reader.read("src/person.xml"); //得到根节点 Element root = document.getRootElement(); // 得到p1 List<Element>p1 = root.elements("p1"); //添加节点 for(Element element : p1){ //添加元素 Element age1 = element.addElement("age"); //添加文本 age1.setText("22"); //回写xml OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/person.xml"),format); xmlWriter.write(document); xmlWriter.close(); } } }
在特定标签前添加一个元素
1、创建解析器 2、得到document 3、得到根节点 4、获取第一个p1(使用element方法) 5、获取p1下面的所有元素(使用elements方法,返回list集合) 6、创建元素(DocumentHelper.createElement(qName);) 7、添加内容(school.setText(text);) 8、在指定位置添加(使用list内add(int index,E element)方法,index从0开始) 9、回写xml
public static void addAgeBefore() throws Exception{ //创建解析器 SAXReader reader = new SAXReader(); //得到Document Document document = reader.read("src/person.xml"); //得到根节点 Element root = document.getRootElement(); // 得到p1 List<Element>p1 = root.elements("p1"); //遍历节点 for(Element element : p1){ //得到子节点 List<Element>p2 = element.elements(); //创建元素(DocumentHelper) Element school = DocumentHelper.createElement("shool"); //创建文本 school.setText("USTC"); //添加元素 p2.add(1,school); //回写xml OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/person.xml"),format); xmlWriter.write(document); xmlWriter.close(); } }
修改节点内容
1、创建解析器 2、得到document 3、得到根节点 4、获取第一个p1(使用element方法) 5、得到p1下面的age元素 6、修改内容(age.setText(text);) 7、回写xml
public static void modifyAge() throws Exception{ //创建解析器 SAXReader reader = new SAXReader(); //得到Document Document document = reader.read("src/person.xml"); //得到根节点 Element root = document.getRootElement(); // 得到p1 List<Element>p1 = root.elements("p1"); //遍历节点 for(Element element : p1){ //选择age Element age1 = element.element("age"); //修改文本 age1.setText("30"); //回写xml OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/person.xml"),format); xmlWriter.write(document); xmlWriter.close(); } } //封装回写代码 public static void xmlWriters(String path,Document document) { try { OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(path), format); xmlWriter.write(document); xmlWriter.close(); } catch (Exception e) { e.printStackTrace(); } }
删除节点
1、创建解析器 2、得到document 3、得到根节点 4、获取第一个p1(使用element方法) 5、得到p1下面的age元素 6、删除节点(p1.remove(age);) 7、回写xml
public static void delAge() throws Exception{ //创建解析器 SAXReader reader = new SAXReader(); //得到Document Document document = reader.read("src/person.xml"); //得到根节点 Element root = document.getRootElement( a88e ); // 得到p1 List<Element>p1 = root.elements("p1"); //遍历节点 for(Element element : p1){ //选择age Element age1 = element.element("age"); //删除节点 boolean i = element.remove(age1); System.out.println(i); //回写xml OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/person.xml"),format); xmlWriter.write(document); xmlWriter.close(); } }
获取属性的值
1、创建解析器 2、得到document 3、得到根节点 4、获取第一个p1(使用element方法) 5、得到p1的属性值 注:增加属性使用addAttribute("id2","www");
public static void getValue() throws Exception { //创建解析器 SAXReader reader = new SAXReader(); //得到Document Document document = reader.read("src/person.xml"); //得到根节点 Element root = document.getRootElement(); //得到p1 List<Element> list = root.elements("p1"); //遍历list for(Element element : list){ //得到属性值 String value = element.attributeValue("id1"); System.out.println(value); } }
相关文章推荐
- DOM4J的使用(DOM4J对XML的解析即增删改查)
- 使用dom4j解析XML
- xml解析4:使用dom4j框架进行对xml文档生成和读写解析
- 使用DOM4j解析XML
- 使用 dom4j 解析 XML
- 使用dom4j解析xml字符串
- JAVA基础——使用DOM4J 解析xml
- Java XML解析工具 dom4j介绍及使用实例
- dom4j解析XML时使用XPath直接定位至标签实例
- xml练习案例(使用Dom4j解析)
- xml解析之使用dom4j的api对xml文件进行CRUD(二)
- 使用Dom4j解析XML
- 使用DOM4J解析XML的一个例子
- 使用POI和dom4j来解析Excel生成Xml
- 使用dom4j和XPath解析XML之例子一
- 使用 dom4j 解析 XML(转自IBM)
- 使用dom4j解析XML例子
- xml文档解析之dom4j的增删改查 ,乱码问题
- Dom4j解析XML文档 —— 增删改查
- 使用 dom4j 解析 XML