Java生成XML文件

Java眼中的XML ---文件写入

四种方法用Java生成一个XML文件。

1.通过DOM方式生成XML文档

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
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.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class DomCreateTest {

    public void createXML() {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        try {
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.newDocument();
            // XML文件中第一行StandAlone表示该XML文件是否独立设置为yes为默认值  且不显示
            // 表示独立没有外部文件为其服务  设置为no表示外部有其他文件为其服务
            document.setXmlStandalone(true);
            Element bookStore = document.createElement("bookStore");
            Element book = document.createElement("book");
            Element title = document.createElement("title");
            Element author = document.createElement("author");
            title.setTextContent("全职高手");
            author.setTextContent("蝴蝶蓝");

            book.appendChild(title);
            book.appendChild(author);
            book.setAttribute("category", "e-sports");
            bookStore.appendChild(book);

            document.appendChild(bookStore);
            // 上面已经建好dom树  要将dom树转为xml文本
            TransformerFactory tff = TransformerFactory.newInstance();
            Transformer transformer = tff.newTransformer();
            // 生成的xml文件格式  换行
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.transform(new DOMSource(document), new StreamResult(new File("books.xml")));

        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new DomCreateTest().createXML();
    }

}

DomCreateTest.java

2.通过 SAX 方式生成 XML 文档

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamResult;

import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;

public class SAXCreateTest {
    public void createXML() {
        SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
        try {
            TransformerHandler handler = factory.newTransformerHandler();
            Transformer transformer = handler.getTransformer();
            // 设置字符编码
            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
            // 设置换行
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            File file = new File("books.xml");
            if (!file.exists()) file.createNewFile();

            // 创建Result对象
            Result result = new StreamResult(new FileOutputStream(file));
            // 和Handler对象相关联
            handler.setResult(result);
            // 利用handler对XML文件内容进行编写
            // 打开document
            handler.startDocument();
            // 如果没有属性就直接new就可以了
            AttributesImpl attr = new AttributesImpl();
            handler.startElement("", "", "bookStore", attr);

            attr.clear();
            attr.addAttribute("", "", "category", "", "e-sports");
            handler.startElement("", "", "book", attr);

            attr.clear();
            handler.startElement("", "", "title", attr);
            handler.characters("全职高手".toCharArray(), 0, "全职高手".length());
            handler.endElement("", "", "title");

            attr.clear();
            handler.startElement("", "", "author", attr);
            handler.characters("蝴蝶蓝".toCharArray(), 0, "蝴蝶蓝".length());
            handler.endElement("", "", "author");

            handler.endElement("", "", "book");

            handler.endElement("", "", "bookStore");

            handler.endDocument();

        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new SAXCreateTest().createXML();
    }
}

SAXCreateTest.java

3.通过 DOM4J 方式生成 XML 文档

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class DOM4JCraeteTest {

    public void create() {
        Document document = DocumentHelper.createDocument();
        Element bookStore = document.addElement("bookStore");

        Element book = bookStore.addElement("book");
        book.addAttribute("category", "e-sport");

        Element title = book.addElement("title");
        title.addText("全职高手");
        Element author = book.addElement("author");
        author.addText("蝴蝶蓝");
        // 设置格式
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("utf-8");
        File file = new File("books.xml");
        XMLWriter writer = null;
        // 设置是否转义  默认为true

        try {
            writer = new XMLWriter(new FileOutputStream(file), format);
            writer.setEscapeText(false);
            writer.write(document);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        new DOM4JCraeteTest().create();
    }
}

DOM4JCraeteTest.java

4.通过 JDOM 方式生成 XML 文档

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

public class JDOMCreateTest {

    public void create() {
        Element bookStore = new Element("bookStore");
        Document document = new Document(bookStore);

        Element book = new Element("book");
        bookStore.addContent(book);
        book.setAttribute("category", "e-sport");

        Element title = new Element("title");
        title.setText("全职高手");
        book.addContent(title);

        Element author = new Element("author");
        book.addContent(author);

        Format format = Format.getCompactFormat();
        format.setIndent("    ");
        format.setEncoding("GBK");

        XMLOutputter outputter = new XMLOutputter(format);
        try {
            outputter.output(document, new FileOutputStream(new File("books.xml")));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        new JDOMCreateTest().create();
    }
}

JDOMCreateTest.java

生成文件效果

<?xml version="1.0" encoding="GBK"?>
<bookStore>
    <book category="e-sport">
        <title>全职高手</title>
        <author />
    </book>
</bookStore>
时间: 2024-11-07 07:34:05

Java生成XML文件的相关文章

java 生成xml文件

这里也使用的是import org.w3c.dom.Document; 首先创建document对象,给该对象赋值,然后将document对象使用transformer的transformer转换方法转换成文件或者其他类型进行想要的操作. 1.创建DocumentBuilder对象 DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder document

java 生成 xml 文件

解析会了,那接着来学学生成~ 同样的引入依赖: import java.io.File; import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; 注意处理异常: public static

利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析

首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) 1 首先建立一个空白XML文件,直接点击下图所示即可: 2 可以使用xml文本编辑界面,或者使用xml树状图编辑界面 切换到xml树状图编辑界面的方法为: 即可调出当前xml文件所对应的xml树状图编辑界面 3 设计并编辑xml文件 根据自己的需要可以利用xml树状图操作界面来方便的设计自己的xml

Java之Pull方式生成xml文件和解析xml文件

Pull XML解析器早已经被google集成到android sdk当中,它是google官方推荐的解析器. 如果我们要在Java桌面.J2ME等当中使用Pull方式生成xml文件和解析xml文件,需要用到kxml2: KXML解析器是基于普通XML PULL解析器的一个小巧的解析器,官网是http://kxml.org/ 普通XML PULL解析器的官网是http://xmlpull.org/ 实验开始: 在Eclipse中新建一个java项目,其中新建一个libs文件夹,拷贝从网上下载的k

【Java编程】SAX XML Parser解析、生成XML文件

1.优缺点 优点: SAX 从根本上解决了 DOM 在解析 XML 文档时产生的占用大量资源的问题.其实现是通过类似于流解析的技术,通读整个 XML 文档树,通过事件处理器来响应程序员对于 XML 数据解析的需求.由于其不需要将整个 XML 文档读入内存当中,它对系统资源的节省是十分显而易见的,它在一些需要处理大型 XML 文档以及性能要求较高的场合有起了十分重要的作用.支持 XPath 查询的 SAX 使得开发人员更加灵活,处理起 XML 来更加的得心应手. 缺点: 但是同时,其仍然有一些不足

5.29日 自己程序的编写,目的:生成xml文件

1.创建了XMLModel这个类:本来还有个rebuildformXML的方法,但是现在用不到,以后再说. public interface XmlModel { public void initModel(); public void doSaveXML(); } 2.对AbstractModel这个类进行了修改,最终变为: package hellogef.model; import java.beans.PropertyChangeListener; import java.beans.P

获取mysql内容,生成xml文件,并且以webservice形式发送

<xyt> <news id> <url></url> <title></title> </news> </xyt> 其实是三个知识点综合到一起的,包括如何访问mysql,如何生成xml文件,如何使用进行webservice开发 好了,话不多说,直接粘代码 package com.service; import java.io.FileOutputStream; import java.io.IOExcepti

获得mysql内容,生成xml文件,另外,为了webservice发送

<xyt> <news id> <url></url> <title></title> </news> </xyt> 事实上是三个知识点综合到一起的.包含怎样訪问mysql.怎样生成xml文件,怎样使用进行webservice开发 好了.话不多说.直接粘代码 package com.service; import java.io.FileOutputStream; import java.io.IOExcept

java生成xml

import java.io.File;import java.io.FileOutputStream;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Map.Entry; import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.output.Format;import