• dom4j解析XML文件


    导入dom4j.jar包

      该包需要你去下载。

      创建xml文件

      XMLWriter writer = null;// 声明写XML的对象

      OutputFormat format =

      OutputFormat.createPrettyPrint();

      format.setEncoding("utf-8");// 设置XML文件的编码格式

      String filePath = "F://student.xml";//保存xml文件路径

      File file = new File(filePath);

      Document _document = DocumentHelper.createDocument();

      Element _root = _document.addElement("学生信息");//----------根

      Element student = _root.addElement("学生");

      Element _id = student.addElement("编号");

      _id.setText("001");

      Element _name = student.addElement("姓名");

      _name.setText("灰机");

      Element _age = student.addElement("年龄");

      _age.setText("18");

      for(int i=0;i<5;i++) {

      Element _student = _root.addElement("record");

      _student.addAttribute("sid", "00"+i);

      _student.addAttribute("phone", "1100"+i);

      }

      try

      {

      writer = new XMLWriter(new FileWriter(file), format);

      writer.write(_document);

      writer.close();

      } catch (IOException e) {

      e.printStackTrace();

      }

      System.out.println("操作结束! ");

      生成结果图:

      

      读取xml文件

      SAXReader reader = new SAXReader();

      String filePath = "f://student.xml";

      File file = new File(filePath);

      Document document;

      try {

      document = reader.read(file);

      Element root = document.getRootElement();// 得到根节点

      /*Element database = (Element)root.selectSingleNode("//学生信息/学生");

      List list = database.elements(); //得到database元素下的子元素集合

      for(Object obj:list){

      Element element = (Element)obj;

      //getName()是元素名,getText()是元素值

      System.out.println(element.getName()+": "+element.getText());

      }*/

      List nodes = root.elements("学生");

      for (Iterator it = nodes.iterator(); it.hasNext();) {

      Element elm = (Element) it.next();

      for(Iterator it2=elm.elementIterator();it2.hasNext();){

      Element elel=(Element)it2.next();

      System.out.println(elel.getName()+":"+elel.getText()+":");

      }

      }

      for (Iterator i = root.elementIterator("record"); i.hasNext();) //对所有record子节点进行遍历

      {

      Element student = (Element) i.next();

      //if (student.attributeValue("sid").equals("001")) //如果record属性sid的值等于001

      for(Iterator it= student.attributeIterator();it.hasNext();)//获取record节点的所有属性

      {

      Attribute attribute = (Attribute) it.next();

      String name=attribute.getName();//获取属性名

      String text=attribute.getText();//获取属性值

      System.out.println(name + " :"+text);

      }

      }

      } catch (DocumentException e) {

      e.printStackTrace();

      }

      本篇文档便于可读,所以采用对照式编码格式。

                                                                                                          技术分享:凯哥学堂

  • 相关阅读:
    为什么 Redis 重启后没有正确恢复之前的内存数据
    Redis的启动过程
    Redis 如何保持和MySQL数据一致
    redis集群节点宕机
    mysql 数据库管理
    mysqladmin 命令详解
    MySQL 编译安装
    mysql 数据库简介
    xtrabackup安装部署(二)
    Non-negative Partial Sums(单调队列)
  • 原文地址:https://www.cnblogs.com/kaige123/p/5774538.html
Copyright © 2020-2023  润新知