DOM生成XML文件

时间:2022-05-21 12:00:52
 1 /**
 2  * 从数据库读取学生信息的数据集合,然后Dom创建数据树,再转成XML格式数据,输出生成xml文件
 3  * @author pikaqiu
 4  *
 5  */
 6 public class TestGenXml {
 7     
 8     public static void main(String[] args) throws Exception {
 9         DocumentBuilderFactory db=DocumentBuilderFactory.newInstance();
10         DocumentBuilder b=db.newDocumentBuilder();
11         Document dom=b.newDocument();
12         //根节点
13         Element root=dom.createElement("info");
14         dom.appendChild(root);
15         StudentService service=new StudentService();
16         List<Student> list= service.queryAll();
17         Iterator<Student> t =list.iterator();
18         while(t.hasNext()){
19             Student stu=t.next();
20             //一个主标签
21             Element stuElement=dom.createElement("student");
22             stuElement.setAttribute("id", stu.getId()+"");
23             root.appendChild(stuElement);
24             //name子标签
25             Element nameEle=dom.createElement("name");
26             nameEle.setTextContent(stu.getName());
27             stuElement.appendChild(nameEle);
28             //addr子标签
29             Element addrsEle=dom.createElement("address");
30             addrsEle.setTextContent(stu.getAddr());
31             stuElement.appendChild(addrsEle);
32             //telephone子标签
33             Element telEle=dom.createElement("telephone");
34             telEle.setTextContent(stu.getTelephone());
35             stuElement.appendChild(telEle);
36             
37         }
38         //通过工厂实例创建Transformer类实例,Transformer为抽象类,其实例能够将源树转换为结果树。
39         TransformerFactory tf=TransformerFactory.newInstance();
40         Transformer tans=tf.newTransformer();
41         
42         //给XML美化格式
43         tans.setOutputProperty(OutputKeys.INDENT, "yes");
44         tans.setOutputProperty("{http://xml.apache.org/xalan}indent-amount", "2");
45         
46         //以 Document Object Model(DOM)树的形式充当转换 Source 树的持有者。
47         DOMSource ds=new DOMSource(dom);    
48         StreamResult result=new StreamResult("c:/Users/bwf/Desktop/stu.xml");
49         //将 XML Source 转换为 Result。
50         tans.transform(ds, result);
51     }
52     
53     
54     
55 
56 }