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 }