Java 写入XML文件

DOMSAX方式是JAVA官方提供的方式,可以生成一个XML文件来存储信息,DOM4JJDOM是非官方的方式,可以生成一个RSS文件

一、DOM方式生成XML文档

DOMTest:

public class DOMTest {
   
    /*生成xml*/
    public void createXML() throws Exception{
        DocumentBuilder db=getDocumentBuilder();
        Document document=db.newDocument();
        Element bookstore=document.createElement("bookStore");
        //向bookstore根节点中添加字节点book
        Element book=document.createElement("book");
        Element name=document.createElement("name");
        book.appendChild(name);
        name.setTextContent("小王子");
        book.setAttribute("id", "1");
        //将book节点添加到bookstore根节点中
        bookstore.appendChild(book);
        //将bookstore节点(已经包含了book),添加到dom树中
        document.appendChild(bookstore);
        //创建TransformerFactory对象
        TransformerFactory tff=TransformerFactory.newInstance();
        //创建Transformer对象
        Transformer tf=tff.newTransformer();
        //换行文件内容
        tf.setOutputProperty(OutputKeys.INDENT, "yes");
        tf.transform(new DOMSource(document), new StreamResult(new File("boos1.xml")));
    }    
    public static void main(String []args) throws Exception{
        DOMTest test=new DOMTest();
        test .createXML();
    }

}

运行结果为:

创建之后的books1.xml的显示内容:

二、SAX方式生成XML文档

/**
* @Decription TODO sax方法创建一个xml文档
*/
public void saxCreateXml(){
    //1、创建一个SAXTransformerFactory一个对象
    SAXTransformerFactory sf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
    OutputStream in =null;
    try {
        //2、通过SAXTransformerFactory创建一个TransformerHandler对象
        TransformerHandler handler = sf.newTransformerHandler();
        //3、通过TransformerHandler对象获取Transformer对象(用于设置xml输出的样式和头)
        Transformer transformer = handler.getTransformer();
        //设置没有其他的DTD(Document Type Defination 文档类型定义)规范
        transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
        //设置编码格式,显式的显示在<?xml version="1.0" ?>中
        transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
        //设置换行
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        //文件输出
        File file =new File("LocListSax.xml");
        //确保file是存在的
        if(!file.exists()){
            if(!file.createNewFile()){
                throw new FileNotFoundException("文件创建失败!");
            }
        }
        //4、创建输出流OutputStream对象
        in = new FileOutputStream(file);
        //5、创建流Result对象
        Result result = new StreamResult(in);
        //6、关联result,此时有了生成元素的方法(handler提供的方法)和装元素
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值