xml教程之java生成xml文件技术介绍

前端之家收集整理的这篇文章主要介绍了xml教程之java生成xml文件技术介绍前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. package com.sihai.test;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6.  
  7. import javax.xml.parsers.DocumentBuilder;
  8. import javax.xml.parsers.DocumentBuilderFactory;
  9. import javax.xml.parsers.ParserConfigurationException;
  10. import javax.xml.transform.OutputKeys;
  11. import javax.xml.transform.Result;
  12. import javax.xml.transform.Transformer;
  13. import javax.xml.transform.TransformerConfigurationException;
  14. import javax.xml.transform.TransformerException;
  15. import javax.xml.transform.TransformerFactory;
  16. import javax.xml.transform.dom.DOMSource;
  17. import javax.xml.transform.sax.SAXTransformerFactory;
  18. import javax.xml.transform.sax.TransformerHandler;
  19. import javax.xml.transform.stream.StreamResult;
  20.  
  21. import org.dom4j.DocumentHelper;
  22. import org.dom4j.io.OutputFormat;
  23. import org.dom4j.io.XMLWriter;
  24. import org.jdom2.output.Format;
  25. import org.jdom2.output.XMLOutputter;
  26. import org.junit.Test;
  27. import org.w3c.dom.Document;
  28. import org.w3c.dom.Element;
  29. import org.xml.sax.SAXException;
  30. import org.xml.sax.helpers.AttributesImpl;
  31.  
  32.  
  33. public class CreateTest {
  34.  
  35. /** * DOM方式生成xml文档 */
  36. private void DOMCreateXML() {
  37. DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  38. DocumentBuilder db = null;
  39. try {
  40. db = dbf.newDocumentBuilder();
  41. } catch (ParserConfigurationException e) {
  42. e.printStackTrace();
  43. }
  44. Document document = db.newDocument();
  45. document.setXmlStandalone(true);
  46. Element bookstore = document.createElement("bookStore");
  47. Element book = document.createElement("book");
  48. Element name = document.createElement("name");
  49. name.setTextContent("小王子");
  50. book.appendChild(name);
  51. book.setAttribute("id","1");
  52. bookstore.appendChild(book);
  53. document.appendChild(bookstore);
  54. TransformerFactory tff = TransformerFactory.newInstance();
  55. try {
  56. Transformer tf = tff.newTransformer();
  57. tf.setOutputProperty(OutputKeys.INDENT,"yes");
  58. tf.transform(new DOMSource(document),new StreamResult(new File(
  59. "books1.xml")));
  60. } catch (TransformerConfigurationException e) {
  61. e.printStackTrace();
  62. } catch (TransformerException e) {
  63. e.printStackTrace();
  64. }
  65. }
  66.  
  67. /** * SAX方式生成xml文档 */
  68. public void SAXCreateXML() {
  69. SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory
  70. .newInstance();
  71. try {
  72. TransformerHandler handler = tff.newTransformerHandler();
  73. Transformer tr = handler.getTransformer();
  74. tr.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
  75. tr.setOutputProperty(OutputKeys.INDENT,"yes");
  76. File f = new File("books2.xml");
  77. if (!f.exists()) {
  78. f.createNewFile();
  79. }
  80. Result result = new StreamResult(new FileOutputStream(f));
  81. handler.setResult(result);
  82. handler.startDocument();
  83. AttributesImpl attr = new AttributesImpl();
  84. handler.startElement("","","bookstore",attr);
  85. attr.clear();
  86. attr.addAttribute("","id","1");
  87. handler.startElement("","book",attr);
  88. attr.clear();
  89. handler.startElement("","name",attr);
  90. handler.characters("小王子".tocharArray(),0,"小王子".length());
  91. handler.endElement("","name");
  92.  
  93. handler.endElement("","book");
  94. handler.endElement("","bookstore");
  95. handler.endDocument();
  96.  
  97. } catch (TransformerConfigurationException e) {
  98. e.printStackTrace();
  99. } catch (FileNotFoundException e) {
  100. e.printStackTrace();
  101. } catch (IOException e) {
  102. e.printStackTrace();
  103. } catch (SAXException e) {
  104. e.printStackTrace();
  105. }
  106. }
  107.  
  108. /** * JDOM方式生成xml文档 */
  109. private void JDOMCreateXML() {
  110. org.jdom2.Element bookstore = new org.jdom2.Element("bookstore");
  111. org.jdom2.Document document = new org.jdom2.Document(bookstore);
  112.  
  113. org.jdom2.Element book = new org.jdom2.Element("book");
  114. book.setAttribute("id","1");
  115. org.jdom2.Element name = new org.jdom2.Element("name");
  116. name.setText("小王子");
  117. book.addContent(name);
  118. bookstore.addContent(book);
  119. Format format = Format.getCompactFormat();
  120. format.setIndent("");
  121. format.setEncoding("UTF-8");
  122. XMLOutputter outputer = new XMLOutputter(format);
  123. try {
  124. outputer.output(document,new FileOutputStream(new File("books3.xml")));
  125. } catch (FileNotFoundException e) {
  126. e.printStackTrace();
  127. } catch (IOException e) {
  128. e.printStackTrace();
  129. }
  130. }
  131.  
  132. /** * DOM4J方式生成xml文档 */
  133. private void DOM4JCreateXML(){
  134. org.dom4j.Document document = DocumentHelper.createDocument();
  135. org.dom4j.Element bookstore = document.addElement("bookstore");
  136. org.dom4j.Element book = bookstore.addElement("book");
  137. book.addAttribute("id","1");
  138. org.dom4j.Element name = book.addElement("name");
  139. name.setText("小王子");
  140. OutputFormat format = OutputFormat.createPrettyPrint();
  141. format.setEncoding("UTF-8");
  142. File file = new File("books4.xml");
  143. XMLWriter writer;
  144. try {
  145. writer = new XMLWriter(new FileOutputStream(file),format);
  146. writer.setEscapeText(false);
  147. writer.write(document);
  148. writer.close();
  149. } catch (IOException e) {
  150. e.printStackTrace();
  151. }
  152. }
  153.  
  154. @Test
  155. public void testPerformance() throws Exception{
  156. System.out.println("性能测试:");
  157. //测试DOM的性能:
  158. long start = System.currentTimeMillis();
  159. DOMCreateXML();
  160. System.out.println("DOM:"+ (System.currentTimeMillis() - start));
  161. //测试SAX的性能:
  162. start = System.currentTimeMillis();
  163. SAXCreateXML();
  164. System.out.println("SAX:"+ (System.currentTimeMillis() - start) );
  165. //测试JDOM的性能:
  166. start = System.currentTimeMillis();
  167. JDOMCreateXML();
  168. System.out.println("JDOM:"+ (System.currentTimeMillis() - start) );
  169. //测试DOM4J的性能:
  170. start = System.currentTimeMillis();
  171. DOM4JCreateXML();
  172. System.out.println("DOM4J:"+ (System.currentTimeMillis() - start) );
  173. }
  174. }

猜你在找的XML相关文章