`
SIHAIloveYAN
  • 浏览: 124493 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

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 {

    /**
     * DOM方式生成xml文档
     */
    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();
        }
    }

    /**
     * SAX方式生成xml文档
     */
    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();
        }
    }

    /**
     * JDOM方式生成xml文档
     */
    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();
        }
    }

    /**
     * DOM4J方式生成xml文档
     */
    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) );
    }
}
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    java 通过模板生成 xml,发送报文

    在Java编程中,生成XML文件并发送报文是一项常见的任务,尤其在系统间的数据交换、API调用或者网络通信中。XML(eXtensible Markup Language)是一种结构化数据表示语言,具有良好的可读性和可扩展性,是数据传输的...

    java文件生成xml文档

    在Java编程中,生成XML文档是一项常见的任务,特别是在构建配置文件、数据交换或者保存结构化信息时。XML(eXtensible Markup Language)是一种标记语言,它的结构清晰、可读性强,非常适合用来存储和传输数据。...

    java导入导出xml文件

    导入XML文件到Java程序中,通常涉及解析XML文档。Java提供了多种解析器,如DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。DOM解析器将整个XML文档加载到内存中的树形...

    java生成xsd,xml示例

    在Java开发中,XML(可扩展...总结起来,Java生成XML和XSD涉及到XML和XSD的基本概念,以及使用JAXB等Java库进行XML操作的技术。在实际项目中,理解并熟练运用这些知识对于处理结构化数据的序列化和反序列化至关重要。

    java XML解析方式实现自动生成word文档

    在Java编程环境中,生成Word文档是一项常见的任务,尤其在企业级应用中,如报告生成、数据分析等场景。XML解析方式是一种高效且灵活的方法,能够帮助我们实现这一目标。本篇文章将详细探讨如何利用Java和XML解析来...

    xml文件自动转成java对象工具

    XML文件自动转换为Java对象工具是一种实用的开发辅助软件,它可以帮助程序员快速地将XML数据映射到Java类,从而简化了数据处理的过程。在Java开发中,XML常被用作数据交换格式,但手动编写Java类来表示XML结构既耗时...

    使用java把数据库数据导出生成xml文件

    使用java把数据库数据导出生成xml文件 使用java把数据库数据导出生成xml文件

    java_动态生成XML文件

    创建XML文件需要`Transformer`和`TransformerFactory`。以下代码将`Document`对象转换为XML文件: ```java TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer ...

    java xml,java生成xml文档,java操作XML文件设置值

    本篇文章将深入探讨如何使用Java生成XML文档以及操作XML文件设置值。 一、Java生成XML文档 1. DOM(Document Object Model):DOM是W3C推荐的一种XML的标准API,它将XML文档解析为一个树形结构,允许我们通过节点...

    解析xml,生成java类

    2. SAX解析:SAX(Simple API for XML)是一种事件驱动的解析方式,它不创建完整的文档对象模型,而是按顺序读取XML文件,遇到元素、属性等时触发相应的事件回调。SAX解析适用于处理大型XML文件,因为它占用的内存较...

    java中生成xml文件,并上传至ftp服务器

    JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。

    java创建xml文件

    下面我们将深入探讨如何使用Java来创建XML文件,以及涉及的相关知识点。 首先,Java中创建XML文件的基本步骤包括: 1. **建立Document对象**:XML文件的基础是DOM(文档对象模型),它是XML的内存表示。我们可以...

    用java读取修改xml文件的代码实现

    本文将详细介绍如何使用Java来读取和修改XML文件,主要涉及以下几个核心知识点: 1. **DOM解析器**: Document Object Model(DOM)是一种将XML文档转换为内存中的树形结构的方法,使得可以遍历和修改XML文件。...

    java生成xml文件

    用java生成xml文档.DocumentBuilderFactory DocumentBuilder Document doc;至此可以用doc来操作xml文档了

    java http 发送xml报文(java发送xml报文实例+参数)

    1. **创建XML文档** 在发送XML之前,我们需要先构建XML文档。可以使用DOM(Document Object Model)或者SAX(Simple API for XML)解析器来生成XML文档。例如,使用DOM解析器创建XML如下: ```java ...

    JAVA 生成 XML文件

    以下是一个简单的示例,展示如何使用DOM创建XML文件: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom....

    java根据xml生成schema_xsd_生成javabean

    总结起来,这个主题涵盖了XML的结构定义、JavaBean的创建以及两者之间的转换技术,这些都是Java开发中处理XML数据时的关键知识点。通过理解这些概念和技术,开发者可以更有效地管理和操作XML数据,构建健壮的Java...

    XML和Java解析技术

    - **基于树的编程(DOM)**:讨论如何使用DOM模型在Java中读取、修改和创建XML文档。 - **基于事件的编程(SAX)**:介绍SAX模型用于解析大型XML文件的高效方式。 - **基于规则的编程(XSLT)**:探讨XSLT在Java中...

    XML转换为JAVA对象的方法

    无论是将Java对象持久化为XML存储,还是从XML文件加载数据到程序中,它都能大大简化工作流程,提高开发效率。在IDEA这样的开发环境中,利用构建工具管理依赖,结合实际的代码示例,学习和使用XStream变得非常容易。

Global site tag (gtag.js) - Google Analytics