DOM生成XML

来源:互联网 发布:域名快速备案靠谱吗 编辑:程序博客网 时间:2024/05/14 02:28

用DOM生成XML文件,自己写的一个例子,放上来晒晒,如果有什么不对的地方,请提出. 

生成类:

package com.sw.XML;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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;
import org.w3c.dom.Text;

public class DOMCreateXML {
 public static void createXML(String filename){
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  try{
   DocumentBuilder db = dbf.newDocumentBuilder();
   File file = new File(filename);
   Document doc = db.newDocument();
   Element root = doc.createElement("struts-config");
   doc.appendChild(root);
   Element formbeans = doc.createElement("form-beans");
   root.appendChild(formbeans);
   Element formbean = doc.createElement("form-bean");
   root.appendChild(formbean);
   formbean.setAttribute("name","loginDynaValidatorForm");
   formbean.setAttribute("type","com.dareway.struts.validator.DynaValidatorForm");
   Element formproperty = doc.createElement("form-property");
   formproperty.setAttribute("name","username");
   formproperty.setAttribute("type","java.lang.String");
   formbean.appendChild(formproperty);
   Element formexample = doc.createElement("form-example");
   formexample.setAttribute("name", "xxx");
   Text beantest = doc.createTextNode("test");
   formexample.appendChild(beantest);
   formbean.appendChild(formexample);
   root.appendChild(doc.createElement("global-exceptions"));
   root.appendChild(doc.createElement("global-forwards"));
   root.appendChild(doc.createElement("action-mappings"));
            Transformer t = TransformerFactory.newInstance().newTransformer();
            t.setOutputProperty("indent", "yes");
            t.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(file)));
   

  }catch(ParserConfigurationException ex){
   ex.printStackTrace();
  }catch(IOException ex){
   ex.printStackTrace();
  }catch(Exception ex){
   ex.printStackTrace();
  }
 }
}

主方法:

package com.sw.XML;

public class doMain {
 public static void main(String args[]){
//  DOMFactory df = new DOMFactory();
//  df.DOMParse("test.xml");
//  DOMParse.DOMParse("test.xml");
//  STRUTSXMLFactory.StrutXMLParse("STRUTS.xml");
  DOMCreateXML.createXML("createtest.xml");
 }
}

生成的createtest.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<struts-config>
<form-beans/>
<form-bean name="loginDynaValidatorForm" type="com.dareway.struts.validator.DynaValidatorForm">
<form-property name="username" type="java.lang.String"/>
<form-example name="xxx">test</form-example>
</form-bean>
<global-exceptions/>
<global-forwards/>
<action-mappings/>
</struts-config>

原创粉丝点击