前端之家收集整理的这篇文章主要介绍了
xml教程之java生成xml文件技术介绍,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- package com.sihai.test
- import java.io.File
- import java.io.FileNotFoundException
- import java.io.FileOutputStream
- import java.io.IOException
-
- import javax.xml.parsers.DocumentBuilder
- import javax.xml.parsers.DocumentBuilderFactory
- import javax.xml.parsers.ParserConfigurationException
- import javax.xml.transform.OutputKeys
- import javax.xml.transform.Result
- import javax.xml.transform.Transformer
- import javax.xml.transform.TransformerConfigurationException
- import javax.xml.transform.TransformerException
- import javax.xml.transform.TransformerFactory
- import javax.xml.transform.dom.DOMSource
- import javax.xml.transform.sax.SAXTransformerFactory
- import javax.xml.transform.sax.TransformerHandler
- import javax.xml.transform.stream.StreamResult
-
- import org.dom4j.DocumentHelper
- import org.dom4j.io.OutputFormat
- import org.dom4j.io.XMLWriter
- import org.jdom2.output.Format
- import org.jdom2.output.XMLOutputter
- import org.junit.Test
- import org.w3c.dom.Document
- import org.w3c.dom.Element
- import org.xml.sax.SAXException
- import org.xml.sax.helpers.AttributesImpl
-
-
- public class CreateTest {
-
-
- private void DOMCreateXML() {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance()
- DocumentBuilder db = null
- try {
- db = dbf.newDocumentBuilder()
- } catch (ParserConfigurationException e) {
- e.printStackTrace()
- }
- Document document = db.newDocument()
- document.setXmlStandalone(true)
- Element bookstore = document.createElement("bookStore")
- Element book = document.createElement("book")
- Element name = document.createElement("name")
- name.setTextContent("小王子")
- book.appendChild(name)
- book.setAttribute("id","1")
- bookstore.appendChild(book)
- document.appendChild(bookstore)
- TransformerFactory tff = TransformerFactory.newInstance()
- try {
- Transformer tf = tff.newTransformer()
- tf.setOutputProperty(OutputKeys.INDENT,"yes")
- tf.transform(new DOMSource(document),new StreamResult(new File(
- "books1.xml")))
- } catch (TransformerConfigurationException e) {
- e.printStackTrace()
- } catch (TransformerException e) {
- e.printStackTrace()
- }
- }
-
-
- public void SAXCreateXML() {
- SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory
- .newInstance()
- try {
- TransformerHandler handler = tff.newTransformerHandler()
- Transformer tr = handler.getTransformer()
- tr.setOutputProperty(OutputKeys.ENCODING,"UTF-8")
- tr.setOutputProperty(OutputKeys.INDENT,"yes")
- File f = new File("books2.xml")
- if (!f.exists()) {
- f.createNewFile()
- }
- Result result = new StreamResult(new FileOutputStream(f))
- handler.setResult(result)
- handler.startDocument()
- AttributesImpl attr = new AttributesImpl()
- handler.startElement("","","bookstore",attr)
- attr.clear()
- attr.addAttribute("","id","1")
- handler.startElement("","book",attr)
- attr.clear()
- handler.startElement("","name",attr)
- handler.characters("小王子".tocharArray(),0,"小王子".length())
- handler.endElement("","name")
-
- handler.endElement("","book")
- handler.endElement("","bookstore")
- handler.endDocument()
-
- } catch (TransformerConfigurationException e) {
- e.printStackTrace()
- } catch (FileNotFoundException e) {
- e.printStackTrace()
- } catch (IOException e) {
- e.printStackTrace()
- } catch (SAXException e) {
- e.printStackTrace()
- }
- }
-
-
- private void JDOMCreateXML() {
- org.jdom2.Element bookstore = new org.jdom2.Element("bookstore")
- org.jdom2.Document document = new org.jdom2.Document(bookstore)
-
- org.jdom2.Element book = new org.jdom2.Element("book")
- book.setAttribute("id","1")
- org.jdom2.Element name = new org.jdom2.Element("name")
- name.setText("小王子")
- book.addContent(name)
- bookstore.addContent(book)
- Format format = Format.getCompactFormat()
- format.setIndent("")
- format.setEncoding("UTF-8")
- XMLOutputter outputer = new XMLOutputter(format)
- try {
- outputer.output(document,new FileOutputStream(new File("books3.xml")))
- } catch (FileNotFoundException e) {
- e.printStackTrace()
- } catch (IOException e) {
- e.printStackTrace()
- }
- }
-
-
- private void DOM4JCreateXML(){
- org.dom4j.Document document = DocumentHelper.createDocument()
- org.dom4j.Element bookstore = document.addElement("bookstore")
- org.dom4j.Element book = bookstore.addElement("book")
- book.addAttribute("id","1")
- org.dom4j.Element name = book.addElement("name")
- name.setText("小王子")
- OutputFormat format = OutputFormat.createPrettyPrint()
- format.setEncoding("UTF-8")
- File file = new File("books4.xml")
- XMLWriter writer
- try {
- writer = new XMLWriter(new FileOutputStream(file),format)
- writer.setEscapeText(false)
- writer.write(document)
- writer.close()
- } catch (IOException e) {
- e.printStackTrace()
- }
- }
-
- @Test
- public void testPerformance() throws Exception{
- System.out.println("性能测试:")
- //测试DOM的性能:
- long start = System.currentTimeMillis()
- DOMCreateXML()
- System.out.println("DOM:"+ (System.currentTimeMillis() - start))
- //测试SAX的性能:
- start = System.currentTimeMillis()
- SAXCreateXML()
- System.out.println("SAX:"+ (System.currentTimeMillis() - start) )
- //测试JDOM的性能:
- start = System.currentTimeMillis()
- JDOMCreateXML()
- System.out.println("JDOM:"+ (System.currentTimeMillis() - start) )
- //测试DOM4J的性能:
- start = System.currentTimeMillis()
- DOM4JCreateXML()
- System.out.println("DOM4J:"+ (System.currentTimeMillis() - start) )
- }
- }