用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>