zoukankan      html  css  js  c++  java
  • java基础 创建xml文件

    <span style="font-size:18px;">package com.demo;
    
    import java.io.File;
    import java.io.StringWriter;
    import java.security.KeyStore.Builder;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    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 createxml {
    
    	public static void main(String[] args) {
    
    		try {
    			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    			DocumentBuilder builder = factory.newDocumentBuilder();
    			Document document = builder.newDocument();
    			
    			//创建根节点
    			Element root = document.createElement("languages");
    			root.setAttribute("cat", "it");
    			
    			Element lan1 = document.createElement("lan");
    			lan1.setAttribute("id", "1");
    			Element name1 = document.createElement("name");
    			name1.setTextContent("java");
    			Element ide1 = document.createElement("ide");
    			ide1.setTextContent("eclipse");
    			//以lan1为父节点,加入name1和ide1子节点
    			lan1.appendChild(name1);
    			lan1.appendChild(ide1);
    			
    			Element lan2 = document.createElement("lan");
    			lan2.setAttribute("id", "2");
    			Element name2 = document.createElement("name");
    			name2.setTextContent("Swift");
    			Element ide2 = document.createElement("ide");
    			ide2.setTextContent("Xcode");
    			lan2.appendChild(name2);
    			lan2.appendChild(ide2);
    			
    			Element lan3 = document.createElement("lan");
    			lan3.setAttribute("id", "3");
    			Element name3 = document.createElement("name");
    			name1.setTextContent("C#");
    			Element ide3 = document.createElement("ide");
    			ide3.setTextContent("Visual Studio");
    			lan3.appendChild(name3);
    			lan3.appendChild(ide3);
    			
    			//以root为根节点加入三个lan子节点,再将root加入document.
    			root.appendChild(lan1);
    			root.appendChild(lan2);
    			root.appendChild(lan3);
    			document.appendChild(root);
    			
    			//-----------------------------------------------
    			//以上为创建xml文件内容,下面需要将该内容生成xml文件,或者以其他方式保存
    			
    			TransformerFactory transformerFactory = TransformerFactory.newInstance();
    			Transformer transformer = transformerFactory.newTransformer();
    			StringWriter writer = new StringWriter();
    			transformer.transform(new DOMSource(document), new StreamResult(writer));
    			System.out.println(writer.toString());
    			
                            //将创建的xml保存至项目路径下,运行后刷新项目即可看到
    			transformer.transform(new DOMSource(document), new StreamResult(new File("languages.xml")));
    			
    		} catch (ParserConfigurationException e) {
    			e.printStackTrace();
    		} catch (TransformerConfigurationException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (TransformerException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    }
    </span>


    控制台效果如下:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?><languages cat="it"><lan id="1"><name>C#</name><ide>eclipse</ide></lan><lan id="2"><name>Swift</name><ide>Xcode</ide></lan><lan id="3"><name/><ide>Visual Studio</ide></lan></languages>

    提示:当然生成的xml文件是没有格式化的,你也可以打开生成的languages.xml文件使用快捷点Ctrl + i格式化





  • 相关阅读:
    lombok、japidocs、swagger学习
    mysql数据库添加新用户,并授予所有权限
    局域网内共享自己的数据库
    HttpURLConnection模板
    nginx简单学习总结
    redis常见命令
    mybatis中的#{}和${}的区别
    Python的多线程
    使用python发送邮件
    python操作MySQL数据库
  • 原文地址:https://www.cnblogs.com/laohuihui/p/5308749.html
Copyright © 2011-2022 走看看