博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用dom4j解析xml文件并执行增删改查操作
阅读量:6155 次
发布时间:2019-06-21

本文共 4626 字,大约阅读时间需要 15 分钟。

转自:https://www.aliyun.com/jiaocheng/1339446.html

1 xml文件:  2 
3 4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 20 21 用dom4j解析xml文件 22 package com.hfxt; 23 24 import java.io.File; 25 import java.io.FileNotFoundException; 26 import java.io.FileOutputStream; 27 import java.io.IOException; 28 import java.io.OutputStreamWriter; 29 import java.util.Iterator; 30 import org.dom4j.Document; 31 import org.dom4j.DocumentException; 32 import org.dom4j.Element; 33 import org.dom4j.io.OutputFormat; 34 import org.dom4j.io.SAXReader; 35 import org.dom4j.io.XMLWriter; 36 37 //dom4j解析xml并且执行(增、删、改、查)操作 38 public class dom4jXmlDemo { 39 40 private Document document; 41 42 public static void main(String[] args){ 43 dom4jXmlDemo domXml = new dom4jXmlDemo(); 44 domXml.getDom(); 45 domXml.addPhoneInfo(); 46 domXml.updatePhoneInfo(); 47 //domXml.deletePhoneInfo(); 48 domXml.showPhoneInfo(); 49 50 } 51 52 //获取DOM树 53 public void getDom(){ 54 SAXReader reader = new SAXReader(); 55 try { 56 document = reader.read(new File("phoneinfo.xml")); 57 } catch (DocumentException e) { 58 e.printStackTrace(); 59 } 60 } 61 62 //增加手机信息 63 public void addPhoneInfo(){ 64 //获取根节点元素 65 Element element = document.getRootElement(); 66 //添加brand节点 67 Element brand = element.addElement("brand"); 68 //为brand添加属性并且赋值 69 brand.addAttribute("name","苹果"); 70 //添加type节点 71 Element type = brand.addElement("type"); 72 Element type1 = brand.addElement("type1"); 73 //为type节点添加name属性并且赋值 74 type.addAttribute("name","iphone7"); 75 type1.addAttribute("name","iphone6"); 76 saveXml("phoneinfo.xml"); 77 } 78 79 //删除手机信息 80 public void deletePhoneInfo(){ 81 //获取根节点 82 Element element = document.getRootElement(); 83 Iterator brand = element.elementIterator(); 84 //遍历获取每个节点信息 85 while(brand.hasNext()){ 86 Element eleBrand = (Element)brand.next(); 87 //删除name为苹果的brand 88 if(eleBrand.attributeValue("name").equals("苹果")){ 89 eleBrand.getParent().remove(eleBrand); 90 } 91 } 92 //保存信息 93 saveXml("phoneinfo.xml"); 94 } 95 96 //修改手机信息 97 public void updatePhoneInfo(){ 98 //获取手机信息 99 Element element = document.getRootElement();100 Iterator brand = element.elementIterator();101 int id = 0;102 while(brand.hasNext()){103 Element eleBrand = (Element)brand.next();104 id++;105 eleBrand.addAttribute("id",id+"");106 }107 saveXml("phoneinfo.xml");108 }109 110 //显示手机信息111 public void showPhoneInfo(){112 //获取根节点113 Element element = document.getRootElement();114 Iterator brand = element.elementIterator();115 while(brand.hasNext()){116 Element eleBrand = (Element)brand.next();117 //根据name属性获取对应的值的名字118 System.out.println(eleBrand.attributeValue("name"));119 //获取type节点120 Iterator type = eleBrand.elementIterator();121 //遍历所有type节点122 while(type.hasNext()){123 Element eleType = (Element)type.next();124 System.out.println("\t"+eleType.attributeValue("name"));125 }126 }127 }128 129 //保存信息到xml130 public void saveXml(String path){131 //格式化132 OutputFormat format = OutputFormat.createPrettyPrint();133 //指定字符编码格式134 format.setEncoding("GBK");135 XMLWriter writer = null;136 //将文件按照指定格式输出到指定路径中137 try {138 writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(path)),format);139 writer.write(document);140 } catch (FileNotFoundException e) {141 e.printStackTrace();142 } catch (IOException e) {143 e.printStackTrace();144 }finally{145 try {146 //关闭服务147 writer.close();148 } catch (IOException e) {149 e.printStackTrace();150 }151 }152 }153 154 }

 

  • 用dom4j解析xml文件并执行增删改查操作
  •  

转载于:https://www.cnblogs.com/sharpest/p/7722444.html

你可能感兴趣的文章
组合 z
查看>>
IOS研究之App转让流程须知具体介绍
查看>>
又一个触摸事件,哟
查看>>
一个非常巧妙的 hashcode 算法 return h & (length-1);
查看>>
还是找程序员做老公,最靠谱!
查看>>
覃超:从湘西到Facebook,硅谷只是技术人生的一小站
查看>>
世纪华通发布重组盛大游戏草案 承诺未来三年实现利润近76亿
查看>>
李彦宏妻子马东敏向中国科大捐赠1亿 成立蔷薇基金
查看>>
山西上党残疾男子“只”手脱贫 带领村民增收
查看>>
安检X光机下的春运归家图 宛如一幅幅水彩画
查看>>
春运首日武警广东总队护航
查看>>
美一8岁华裔男童体育课上头部重伤 家长吁调查
查看>>
香港一小巴侧翻致1死16伤 警方:未见机件故障
查看>>
不满俄欧“北溪-2”项目 美驻德大使威胁制裁德国企业
查看>>
“羊贵妃”没走“牛魔王”又来?牛肉价格屡创新高
查看>>
0基础如何入门Python编程
查看>>
JavaScript写贪吃蛇游戏,代码思路都有,想学的自己看
查看>>
人工智能与大数据的耦合,将会怎么影响我们的生活
查看>>
数据运营的三种角色
查看>>
【译】CSS 自定义属性的策略指南
查看>>