zoukankan      html  css  js  c++  java
  • java基础笔记(6)

    xml文件的写入

    通过dom生成xml文件:

    package com.writexml;
    
    import java.io.File;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.*;
    
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    
    public class domWrite {
        public DocumentBuilder getDocumentBuilder() throws ParserConfigurationException {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            return db;
        }
        public void creatXML() throws ParserConfigurationException, TransformerException {
            DocumentBuilder db = getDocumentBuilder();
            Document document = db.newDocument();
            document.setXmlStandalone(true);//默认的话会在生成的xml文件声明中将Standalone=“no”,这样会生成说明格式的文档,若要将其不生成,这通过这个语句设置成yes,即true
            Element bookstore = document.createElement("bookstore");//创建节点
            Element book = document.createElement("book");
            Element name = document.createElement("name");
            name.setTextContent("童话故事");
            book.setAttribute("id", "1");
            document.appendChild(bookstore);//将bookstore根节点增加到dom树中
            bookstore.appendChild(book);//将book节点增加到bookstore根节点中
            book.appendChild(name);
            TransformerFactory tff = TransformerFactory.newInstance();//创建TransformerFactory对象
            Transformer tf = tff.newTransformer();//创建Transformer对象
            tf.setOutputProperty(OutputKeys.INDENT, "yes");//是否换行
            tf.transform(new DOMSource(document), new StreamResult(new File("books01.xml")));//将document输入到文件中
            
            
        }
        public static void main(String[] args) throws ParserConfigurationException, TransformerException {
            // TODO Auto-generated method stub
            domWrite test = new domWrite();
            test.creatXML();
        }
    
    }

    通过SAX生成xml文件:

    package com.writexml;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    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.jdom2.Attribute;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.AttributesImpl;
    
    import com.entry.Book;
    import com.hd.SAXHd;
    
    public class saxWrite {
        public ArrayList<Book> parseXml() throws ParserConfigurationException, SAXException, IOException{
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser parser = factory.newSAXParser();
            SAXHd hd = new SAXHd();
            parser.parse("books.xml", hd);
            return hd.getBookList();
        }
        public void creatXML() throws ParserConfigurationException, SAXException, IOException, TransformerConfigurationException {
            ArrayList<Book> book = parseXml();//运行parseXml,将一个包含两本书对象的集合传给变量book;
            SAXTransformerFactory tff = (SAXTransformerFactory)SAXTransformerFactory.newInstance();//创建SAXTransformerFactory对象
            TransformerHandler tfh = tff.newTransformerHandler();//创建TransformerHandler对象;
            Transformer tf = tfh.getTransformer();//通过TransformerHandler创建Transformer对象;
            tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");//通过Transformer对象设置编码;
            tf.setOutputProperty(OutputKeys.INDENT, "YES");//通过Transformer对象设置是否换行;
            File f = new File("books02.xml");
            if(!f.exists()) {
                f.createNewFile();
            }
            Result result = new StreamResult(new FileOutputStream(f));//将文件加载到result中
            tfh.setResult(result);//将创建好的result对象和TransformerHandler对象关联
            tfh.startDocument();//打开文档
            AttributesImpl attr = new AttributesImpl();
            tfh.startElement("", "", "bookstore", attr);
            for (Book i :book) {
            attr.clear();
            attr.addAttribute("", "", "id", "", i.getId());
            tfh.startElement("","","book",attr);
            if(i.getName()!=null && !i.getName().trim().equals("")) {
            attr.clear();
            tfh.startElement("","","name",attr);
            tfh.characters(i.getName().toCharArray(), 0, i.getName().length());
            tfh.endElement("","","name");}
            if(i.getAuthor()!=null && !i.getAuthor().trim().equals("")) {
            attr.clear();
            tfh.startElement("","","author",attr);
            tfh.characters(i.getAuthor().toCharArray(), 0, i.getAuthor().length());
            tfh.endElement("","","author");}
            if(i.getYear()!=null && !i.getYear().trim().equals("")) {
            attr.clear();
            tfh.startElement("","","year",attr);
            tfh.characters(i.getYear().toCharArray(), 0, i.getYear().length());
            tfh.endElement("","","year");}
            tfh.endElement("","","book");
            }
            tfh.endElement("", "", "bookstore");
            
            tfh.endDocument();//关闭文档
            
        }
        public static void main(String[] args) throws TransformerConfigurationException, ParserConfigurationException, SAXException, IOException {
            // TODO Auto-generated method stub
            saxWrite test = new saxWrite();
            test.creatXML();
        }
    
    }

    dom4j创建rss类的xml文件:

    package com.writexml;
    
    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 dom4j {
        public void creatMXL() throws IOException {
            Document document = DocumentHelper.createDocument();//创建document对象,代表整个xml文档
            Element rss = document.addElement("rss");//创建根节点rss;
            rss.addAttribute("version", "2.0");//向根节点添加属性
            Element channel = rss.addElement("channel");//生成rss的子节点channel
            Element title = channel.addElement("title");//生成channel的子节点title
            title.setText("国内最新新闻");//设置子节点title的节点值
            OutputFormat format = OutputFormat.createPrettyPrint();//设置格式
            format.setEncoding("GBK");//设置字符编码
            File file = new File("books03.xml");
            XMLWriter writer = new XMLWriter(new FileOutputStream(file),format);
            writer.setEscapeText(false);//设置是否转义,默认是会转义
            writer.write(document);//生成xml文件并传进格式
            writer.close();
        }
        
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            dom4j test = new dom4j();
            test.creatMXL();
        }
    
    }

    JDOM生成xml文件

    package com.writexml;
    
    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.EscapeStrategy;
    import org.jdom2.output.Format;
    import org.jdom2.output.XMLOutputter;
    
    public class jdomWriter {
         EscapeStrategy es = new EscapeStrategy() {
            
            @Override
            public boolean shouldEscape(char arg0) {
                // TODO Auto-generated method stub
                return false;
            }
        };
        public void creatXML() throws FileNotFoundException, IOException {
            Element rss = new Element("rss");//创建rss根节点
            rss.setAttribute("servion", "2.0");//创建节点的属性
            Document document = new Document(rss);//生成document对象,并将根节点传入
            Element channel = new Element("channel");
            rss.addContent(channel);
            Element title = new Element("title");
            title.setText("国内最新新闻");
            channel.addContent(title);
            Format format = Format.getPrettyFormat();
            format.setEscapeStrategy(es );
            XMLOutputter outputer = new XMLOutputter(format);//创建outputer对象
            File file = new File("books04.xml");
            outputer.output(document, new FileOutputStream(file));//通过outputer对象中的output方法将document对象传入xml文件中
            
        }
        public static void main(String[] args) throws FileNotFoundException, IOException {
            // TODO Auto-generated method stub
            jdomWriter test = new jdomWriter();
            test.creatXML();
        }
    
    }

  • 相关阅读:
    cas 单点登录(SSO)实验之二: cas-client
    前端要给力之:语句在JavaScript中的值
    【Linux】Tomcat安装及一个服务器配置多个Tomcat
    【Linux】 JDK安装及配置 (tar.gz版)
    Android自动化测试中AccessibilityService获取控件信息(1)
    Android自动化框架 模拟操作 模拟测试
    Android应用程序如何调用shell脚本(一)
    关于lidroid xUtils 开源项目
    android 开源项目列表【持续整理中。。。】
    android开发常用组件【持续更新中。。。】
  • 原文地址:https://www.cnblogs.com/lzj-learn/p/11857967.html
Copyright © 2011-2022 走看看