zoukankan      html  css  js  c++  java
  • Dom4jApp.java 解析和创建XML

    package cn.studio.dom4jDemo;

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.UnsupportedEncodingException;
    import java.util.Iterator;
    import java.util.List;
    import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentFactory;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;

    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;

    public class Dom4jApp {
     public Dom4jApp() {

     }

     public static void parseXML(String name) {
      SAXReader parser = new SAXReader();

      InputStream in = Dom4jApp.class.getClassLoader().getResourceAsStream(
        name);
      try {
       Document doc = parser.read(in);
       Element rootElement = doc.getRootElement();
       System.out.println("rootElemnt:" + rootElement.getName());
       List<Element> list = rootElement.elements();
       for (Element e : list) {
        System.out.println(e.getName());
        List<Attribute> attrList = e.attributes();
        for (Attribute a : attrList) {
         System.out.println(a.getName() + ":" + a.getValue());
        }

        Iterator<Element> iterator = e.elementIterator();
        while (iterator.hasNext()) {
         Element child = iterator.next();
         String childName = child.getName();
         String childText = child.getText();
         System.out.println(childName + "--------" + childText);

        }
       }

      } catch (DocumentException e) {
       e.printStackTrace();
      }

     }

     public static void createXML() {
      DocumentFactory f = new DocumentFactory();
      Document doc = f.createDocument();
      doc.addComment("个人信息xml文档:");
      /**
       * 设置root元素
       */
      Element root = doc.addElement("person-information");
      /**
       * 设置第一个儿子元素
       */
      Element p1 = root.addElement("person");
      p1.addComment("第一个人");
      p1.addAttribute("pid", "1");
      /**
       * 设置孙子元素
       */
      Element name1 = p1.addElement("name");
      name1.setText("lyc");
      Element sex1 = p1.addElement("sex");
      sex1.setText("男");
      Element age1 = p1.addElement("age");
      age1.setText("23");
      Element birthday1 = p1.addElement("birthday");
      birthday1.setText("1989-11-20");
      Element telphone1 = p1.addElement("telphone");
      telphone1.setText("15115672844");
      /**
       * 设置第二个儿子元素
       */
      Element p2 = root.addElement("person");
      p2.addComment("第二个人");
      p2.addAttribute("pid", "2");
      /**
       * 设置孙子元素
       */
      Element name2 = p2.addElement("name");
      name2.setText("fx");
      Element sex2 = p2.addElement("sex");
      sex2.setText("女");
      Element age2 = p2.addElement("age");
      age2.setText("23");
      Element birthday2 = p2.addElement("birthday");
      birthday2.setText("1989-12-01");
      Element telphone2 = p2.addElement("telphone");
      telphone2.setText("15178784949");

      Element p3 = root.addElement("person");
      p3.addComment("第三个人");
      p3.addAttribute("pid", "3");
      Element name3 = p3.addElement("name");
      name3.setText("cn");
      Element sex3 = p3.addElement("sex");
      sex3.setText("女");
      Element age3 = p3.addElement("age");
      age3.setText("22");
      Element birthday3 = p3.addElement("birthday");
      birthday3.setText("1990-10-20");
      Element telphone3 = p3.addElement("telphone");
      telphone3.setText("15888663245");

      /**
       * 设置第四个儿子元素,修改元素
       */

      Element p4 = p3.createCopy();
      p4.addComment("第四个人");
      p4.addAttribute("pid", "4");
      p4.element("name").setText("lq");
      p4.element("birthday").setText("1989-08-10");
      root.add(p4);

      /**
       * 定义输入格式(编码,是否缩进,缩进的间距,换行输出?)
       */

      OutputFormat format = new OutputFormat();
      format.setEncoding("utf-8");
      format.setIndent(true);
      format.setIndent("  ");
      format.setNewlines(true);
      format.setSuppressDeclaration(true);

      try {
       OutputStream os = new FileOutputStream("src/people.xml");
       XMLWriter writer = new XMLWriter(os, format);
       writer.write(doc);
       writer.close();
       os.close();
      } catch (FileNotFoundException e) {
       e.printStackTrace();
      } catch (UnsupportedEncodingException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
     }

     public static void main(String[] args) {
      createXML();
      parseXML("people.xml");
     }
    }

  • 相关阅读:
    开放API接口安全处理!
    ant笔记
    并发调试
    IDEA 设置(中文乱码、svn、热部署、ideolog 、Jrebel )
    win10家庭版升级专业版
    org.json package
    'root'@'localhost'不能登录问题
    javascript之DOM选择符
    javascript之DOM(四其他类型)
    javascript之DOM(三Element类型)
  • 原文地址:https://www.cnblogs.com/33blog/p/2614280.html
Copyright © 2011-2022 走看看