JAVA创建XML文件(二)---SAX方式创建XML

本文详细介绍了如何利用JAVA的SAX方法来创建XML文件,包括具体的步骤和核心的JAVA代码示例。

1.SAX方式创建XML的方法:

1.创建一个SAXTransformerFactory对象
2.通过SAXTransformerFactory对象的newTransformerhandler方法创建一个TransformerHandler对象
3.通过TransformerHandler对象的getTransformer方法创建一个Transformer对象
4.通过Transforemer对象的setOutput方法设置属性
5.通过StreamResult方法创建一个Result对象,指向要输出的XML文件
6.通过TransformerHandler对象的setResult方法将Result对象与TransformerHandler对象关联
7.通过TransformerHandler对象编写XML文件的内容
7.1通过TransformerHandler对象的startDocument方法打开Document
7.2通过TransformerHandler对象的startElement方法创建节点
7.3通过TransformerHandler对象的characters方法设置节点的内容
7.4通过TransformerHandler对象的end###方法关闭节点和Document

1.SAX方式创建XML的JAVA代码:

//创建一个SAXtransformerfactory对象
    SAXTransformerFactory stf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
    try {
        //通过SAXTransformerFactory对象创建一个TransfomerHandler对象
        TransformerHandler handler = stf.newTransformerHandler();
        //通过transformerHandler对象创建一个transformer对象
        Transformer tf = handler.getTransformer();
        //设置Transfomer对象的属性
        tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
        tf.setOutputProperty(OutputKeys.INDENT, "yes");
        //创建一个Result的对象,将其与handler关联
        File file = new File("src/res/SAXCreate.xml");
        if(!file.exists()){
                file.createNewFile();
        }
        Result result = new StreamResult(new FileOutputStream(file));
        handler.setResult(result);
        //通过Handler编写XML的内容         
        //打开Document 
        handler.startDocument();
        AttributesImpl attr = new AttributesImpl();
        //创建根节点bookstore
        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 (SAXException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (TransformerConfigurationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值