DomBuilding.java

  1. import org.apache.xalan.serialize.SerializerToXML;  
  2. import org.apache.xalan.templates.OutputProperties;  
  3.  
  4. import org.w3c.dom.Document;  
  5. import org.w3c.dom.Element;  
  6. import java.io.File;  
  7. import java.io.StringWriter;  
  8. import java.util.Properties;  
  9. import javax.xml.parsers.DocumentBuilder;  
  10. import javax.xml.parsers.DocumentBuilderFactory;  
  11. import javax.xml.transform.Transformer;  
  12. import javax.xml.transform.TransformerFactory;  
  13. import javax.xml.transform.dom.DOMSource;  
  14. import javax.xml.transform.stream.StreamResult;  
  15.  
  16. public class DomBuilding  
  17. {  
  18.  
  19.     static Document document;  
  20.  
  21.     public DomBuilding()  
  22.     {  
  23.     }  
  24.  
  25.     public Element addElement(Document document, Element parent,  
  26.             String elementname) throws Exception  
  27.     {  
  28.         Element temp = document.createElement(elementname);  
  29.         parent.appendChild(temp);  
  30.         return temp;  
  31.     }  
  32.  
  33.     public Document newDom() throws Exception  
  34.     {  
  35.         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
  36.         DocumentBuilder builder = factory.newDocumentBuilder();  
  37.         document = builder.newDocument();  
  38.         return document;  
  39.     }  
  40.  
  41.     public void transformDomToXml(Document document, String FileName)  
  42.             throws Exception  
  43.     {  
  44.         TransformerFactory tFactory = TransformerFactory.newInstance();  
  45.         Transformer transformer = tFactory.newTransformer();  
  46.         DOMSource source = new DOMSource(document);  
  47.         StreamResult result = new StreamResult(new File(FileName));  
  48.         transformer.transform(source, result);  
  49.  
  50.     }  
  51.  
  52.     public String transformDomToOutputStream(Document document)  
  53.             throws Exception  
  54.     {  
  55.         StringWriter sw = new StringWriter();  
  56.         String result = new String();  
  57.         SerializerToXML serxml = new SerializerToXML();  
  58.         serxml.setWriter(sw);  
  59.         Properties properties = OutputProperties  
  60.                 .getDefaultMethodProperties("xml");  
  61.  
  62.         properties.setProperty("encoding""GBK");    
  63.         serxml.setOutputFormat(properties);  
  64.         serxml.serialize(document);  
  65.         serxml.flushWriter();  
  66.         result = sw.toString();  
  67.         return result;  
  68.     }  

 BookBean.java

  1. public class BookBean {  
  2.     private String name;  
  3.     private String prise;  
  4.     private String author;  
  5.     private String press;  
  6.  
  7.     public String getName() {  
  8.         return name;  
  9.     }  
  10.  
  11.     public void setName(String name) {  
  12.         this.name = name;  
  13.     }  
  14.  
  15.     public String getPrise() {  
  16.         return prise;  
  17.     }  
  18.  
  19.     public void setPrise(String prise) {  
  20.         this.prise = prise;  
  21.     }  
  22.  
  23.     public String getAuthor() {  
  24.         return author;  
  25.     }  
  26.  
  27.     public void setAuthor(String author) {  
  28.         this.author = author;  
  29.     }  
  30.  
  31.     public String getPress() {  
  32.         return press;  
  33.     }  
  34.  
  35.     public void setPress(String press) {  
  36.         this.press = press;  
  37.     }  

 构建类:

BeanTOXML.java

  1. import org.w3c.dom.Document;  
  2. import org.w3c.dom.Element;  
  3. import org.w3c.dom.Text;  
  4.  
  5.  
  6. public class BeanTOXML {  
  7.  
  8.     public String buildXML(BookBean bean) {  
  9.         String returnXML = "";  
  10.           
  11.         if (bean != null) {  
  12.             try {  
  13.                 Document document = null;  
  14.                 DomBuilding domBuilding = new DomBuilding();  
  15.                 document = domBuilding.newDom();  
  16.                   
  17.                 //构建根节点  
  18.                 Element root = document.createElement("books");  
  19.                 document.appendChild(root);  
  20.                 Element bookEL = domBuilding.addElement(document, root, "book");  
  21.                   
  22.                 if (bean.getName() != null) {  
  23.                     Element name = domBuilding.addElement(document, bookEL,  
  24.                             "name");  
  25.                     Text idText = document.createTextNode(bean.getName());  
  26.  
  27.                     name.appendChild(idText);  
  28.                 }  
  29.                 if (bean.getPrise() != null) {  
  30.                     Element prise = domBuilding.addElement(document, bookEL,  
  31.                             "prise");  
  32.                     Text idText = document.createTextNode(bean.getPrise());  
  33.  
  34.                     prise.appendChild(idText);  
  35.                 }  
  36.                 if (bean.getAuthor() != null) {  
  37.                     Element author = domBuilding.addElement(document, bookEL,  
  38.                             "author");  
  39.                     Text idText = document.createTextNode(bean.getAuthor());  
  40.  
  41.                     author.appendChild(idText);  
  42.                 }  
  43.                 if (bean.getPress() != null) {  
  44.                     Element press = domBuilding.addElement(document, bookEL,  
  45.                             "press");  
  46.                     Text idText = document.createTextNode(bean.getPress());  
  47.  
  48.                     press.appendChild(idText);  
  49.                 }  
  50.                   
  51.                 //把生成的document转换成String形式  
  52.                 returnXML = domBuilding.transformDomToOutputStream(document);  
  53.                   
  54.             } catch (Exception e) {  
  55.                 System.out.println("要解析的bean为空!");  
  56.             }  
  57.         }  
  58.         return returnXML;  
  59.     }  
  60.  
  61.     public static void main(String[] args) {  
  62.         BookBean bean = new BookBean();  
  63.         bean.setName("bookName");  
  64.         bean.setPrise("99");  
  65.         bean.setAuthor("bookAuthor");  
  66.         bean.setPress("bookPress");  
  67.  
  68.         String toXML = new BeanTOXML().buildXML(bean);  
  69.           
  70.         System.out.println(toXML);  
  71.     }  
  72.  
  73. }  

 输出结果:

  1. <?xml version="1.0" encoding="GBK" standalone="no"?> 
  2. <books><book><name>bookName</name><prise>99</prise><author>bookAuthor</author><press>bookPress</press></book></books>