XML--dom4j解析
XML--dom4j解析
HoneyHoney 发表于3年前
XML--dom4j解析
  • 发表于 3年前
  • 阅读 13
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 读取 增加 删除 更改节点

将dom4j里面的jar包放到项目中,buildpath一下

    核心类

      1: org.dom4j...SaxReader
      2: org.dom4j...Document

读取xml中的有用的数据:

public class Demo01 {
 @Test
 public void test1() throws Exception{
  //1:声明读取文件的对象
  SAXReader sax = new SAXReader();
  //2:读取文件
  Document dom = sax.read("./files/users.xml");
  //3:获取根元素
  Element root = dom.getRootElement();
  //4:读取里面的节点
  List<Element> users = root.elements();
  for(Element e:users){
   String id = e.attributeValue("id");
   String name = e.element("name").getText();
   String age = e.elementText("age");
   System.err.println(id+","+name+","+age);
  }
 }
}

增加节点:         org.dom4j.XMLWriter - 将内存中的dom保存到文件中去。

 @Test
 public void save() throws Exception{
  SAXReader sax = new SAXReader();
  Document dom = sax.read("./files/users.xml");
  Element root = dom.getRootElement();
  
  //添加子元素
  Element userElement = root.addElement("user");
  userElement.addAttribute("id","U100");
  userElement.addElement("name").setText("马六");
  userElement.addElement("age").setText("34");
  
 //保存
  XMLWriter w = new XMLWriter(new FileOutputStream("./files/users.xml"));
  w.write(dom);
 //  OutputFormat format = OutputFormat.createPrettyPrint();  
 // 利用格式化类对编码进行设置  
 //  format.setEncoding("GBK");  
 // FileOutputStream output = new FileOutputStream(new File(path +  
 //            "books1.xml"));  
 // XMLWriter writer = new XMLWriter(output, format);  
 // writer.write(doc);  
 // writer.flush();  
 // writer.close();  
 }

删除节点:

 @Test
 public void del() throws Exception{
  SAXReader sax = new SAXReader();
  Document dom = sax.read("./files/users.xml");
  Element root = dom.getRootElement();
  
  List<Element> list =  root.elements();
  Element last = list.get(list.size()-1);
  //删除
  last.getParent().remove(last);
  //保存
  XMLWriter w = new XMLWriter(new FileOutputStream("./files/users.xml"));
  w.write(dom);
 }

更改节点: 

@Test
 public void del() throws Exception{
  SAXReader sax = new SAXReader();
  Document dom = sax.read("./files/users.xml");
  Element root = dom.getRootElement();
  
  List<Element> list =  root.elements();
  Element last = list.get(list.size()-1);
  //更改
  //last.getElementsByTagName("name").item(0).setTextContent("王五");
  //last.getElementsByTagName("age").item(0).setTextContent("15");
  //保存
  XMLWriter w = new XMLWriter(new FileOutputStream("./files/users.xml"));
  w.write(dom);
 }





共有 人打赏支持
粉丝 0
博文 21
码字总数 6313
×
HoneyHoney
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: