以下示例比较简单,仅供初学者参考。
生成XML文件,引用DOM包。
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import java.io.File;
import java.io.FileOutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
public class XmlWriterDom {
public static void main(String[] args){
genXmlFile();
}
public static void genXmlFile(){
try{
//解析器工厂类
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//解析器
DocumentBuilder builder = factory.newDocumentBuilder();
//操作的Document对象
Document document = builder.newDocument();
//设置XML的版本
document.setXmlVersion("1.0");
//创建根节点
Element root = document.createElement("MobileNet");
//将根节点添加到Document对象中
document.appendChild(root);
/**the first page*/
//设置第一个page元素到
Element pageElement = document.createElement("page");
//设置page节点的name属性
pageElement.setAttribute("name", "list.jsp");
/**method*/
//设置method节点
Element methodElement = document.createElement("method");
//给method设置值
methodElement.setTextContent("get");
//添加method节点到page节点内
pageElement.appendChild(methodElement);
/**display*/
//设置method节点
Element displayElement = document.createElement("display");
//给display设置值
displayElement.setTextContent("list");
//添加display节点到page节点内
pageElement.appendChild(displayElement);
/**request_param*/
//设置request_param节点
Element request_paramElement = document.createElement("request_param");
//给request_param设置值
request_paramElement.setTextContent("request_param1|request_param2");
//添加request_param节点到page节点内
pageElement.appendChild(request_paramElement);
//将page段加人根节点内
root.appendChild(pageElement);
/**the second page*/
//设置第二个page元素到
pageElement = document.createElement("page");
//设置page节点的name属性
pageElement.setAttribute("name", "content.jsp");
/**method*/
//设置method节点
methodElement = document.createElement("method");
//给method设置值
methodElement.setTextContent("post");
//添加method节点到page节点内
pageElement.appendChild(methodElement);
/**display*/
//设置method节点
displayElement = document.createElement("display");
//给display设置值
displayElement.setTextContent("content");
//添加display节点到page节点内
pageElement.appendChild(displayElement);
/**url_title*/
//设置url_title节点
Element url_titleElement = document.createElement("url_title");
//给url_title设置值
url_titleElement.setTextContent("title,publisher,published_calendar");
//添加url_title节点到page节点内
pageElement.appendChild(url_titleElement);
//将page段加人根节点内
root.appendChild(pageElement);
//开始把Document映射到文件
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transFormer = transFactory.newTransformer();
//设置输出结果
DOMSource domSource = new DOMSource(document);
//生成xml文件
File file = new File("d:/test.xml");
//判断是否存在,如果不存在,则创建
if(!file.exists()){
file.createNewFile();
}
//文件输出流
FileOutputStream out = new FileOutputStream(file);
//设置输入源
StreamResult xmlResult = new StreamResult(out);
//输出xml文件
transFormer.transform(domSource, xmlResult);
//测试文件输出的路径
System.out.println(file.getAbsolutePath());
}catch(Exception e){
e.printStackTrace();
}finally{
}
}
}
test.xml
<?xml version="1.0" encoding="UTF-8"?> <MobileNet> <page name="list.jsp"> <method>get</method> <display>list</display> <request_param>request_param1|request_param2</request_param> </page> <page name="content.jsp"> <method>post</method> <display>content</display> <url_title>title,publisher,published_calendar</url_title> </page> </MobileNet>