zoukankan      html  css  js  c++  java
  • JAVA生成XML文件

     Java Bean:

    package xml;
    
    public class Person {
    private String name ;
    private int age ;
    
    
    public Person(String name, int age) {
      super();
      this.name = name;
      this.age = age;
    }
    
    public String getName() {
      return name;
    }
    
    public void setName(String name) {
      this.name = name;
    }
    
    public int getAge() {
      return age;
    }
    
    public void setAge(int age) {
      this.age = age;
    }
    
    
    }
    
    详细实现:

    package xml;
    
    import java.io.FileOutputStream;
    import java.io.PrintWriter;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.List;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    
    public class XmlGeneratorDemo {
    public static void main(String[] args) {
      String outputPath = System.getProperty("user.dir")+File.separator + "src"+File.separator+"person.xml";
      generateXml(outputPath);
    }
    public static void generateXml(String outputPath) {
      try {
       Person [] arr = new Person[]{new Person("jinbo",20), new Person("gameboy",25)};
       List<Person> list = Arrays.asList(arr);//将数组转换成List
       Document doc = generateXml(list);//生成XML文件
       outputXml(doc, outputPath);//将文件输出到指定的路径
      } catch (Exception e) {
       System.err.println("出现异常");
      }
    }
    /**
      * 将XML文件输出到指定的路径
      * @param doc
      * @param fileName
      * @throws Exception
      */
    private static void outputXml (Document doc, String fileName) throws Exception{
      TransformerFactory tf = TransformerFactory.newInstance();
      Transformer transformer = tf.newTransformer();
      DOMSource source = new DOMSource(doc);
      transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
      transformer.setOutputProperty(OutputKeys.INDENT, "yes");//设置文档的换行与缩进
      PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
      StreamResult result = new StreamResult(pw);
      transformer.transform(source, result);
      System.out.println("生成XML文件成功!");
    }
    /**
      * 生成XML文件
      * @param list
      * @return
      */
    public static Document generateXml(List<Person> list){
      Document doc = null;
      Element root = null;
      try {
       DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
       DocumentBuilder builder = factory.newDocumentBuilder();
       doc = builder.newDocument();
       root = doc.createElement("person");
       doc.appendChild(root);
      } catch (Exception e) {
       e.printStackTrace();
       return null;//假设出现异常,则不再往下运行
      }
      
      int len = list.size() ;
      Element element ;
      for (int i = 0; i < len; i++) {
       Person person = list.get(i);
       element = doc.createElement("person"+(i+1));
       element.setAttribute("age", ""+person.getAge());
       element.setAttribute("name", person.getName());
       root.appendChild(element);
      }
      return doc;
    }
    }


  • 相关阅读:
    如何在Ubuntu Server 18.04上安装Microsoft的Procmon
    如何在Ubuntu 20.04上安装Wine 5.0
    如何在Kali Linux 2020中启用SSH服务
    如何在Ubuntu 20.04 LTS Focal Fossa上安装Apache Groovy
    如何使用命令在Ubuntu 20.04 Linux上安装Vmware Tools
    在Ubuntu 20.04 LTS Focal Fossa上安装Zabbix Agent
    hdu 2089 不要62
    hdu 2093 成绩排名
    hdu 2104 hide handkerchief
    leetcode147对链表进行插入排序
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5126800.html
Copyright © 2011-2022 走看看