Java中的XML(写)

来源:互联网 发布:手机站如何优化 编辑:程序博客网 时间:2024/05/16 08:33

DOM方式生成XML

public static void cxml() {        // TODO Auto-generated method stub        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();        DocumentBuilder db = dbf.newDocumentBuilder();        org.w3c.dom.Document docu = db.newDocument();        docu.setXmlStandalone(true);        // 创建一个节点作为根节点        org.w3c.dom.Element booksElement = docu.createElement("books");        // 创建一个节点作为子节点        org.w3c.dom.Element bookElement = docu.createElement("book");        // 给子节点添加子节点以内容        bookElement.setAttribute("id", "1");// 给子节点设置属性        // 再创建一个子节点        org.w3c.dom.Element name =  docu.createElement("name");        name.setTextContent("遇见位置的自己");        // 将子节点添加到根节点之间        bookElement.appendChild( name);        booksElement.appendChild(bookElement);        //将根节点添加        docu.appendChild(booksElement);        //通过工厂方式将xml文件生成        TransformerFactory tsf =TransformerFactory.newInstance();        Transformer ts = tsf.newTransformer();        ts.setOutputProperty(OutputKeys.INDENT,"yes");//使得xml换行        ts.transform( new DOMSource(docu), new StreamResult(new File("eric.xml")));    }

SAX方式生成XML

  • 导入SAXParserHandler类、Book类、以及books.xml文件
public class SAXXML {    //本节课要使用解析后生成的bookList进行xml文件编写  public static ArrayList<Book> parseXML (){      SAXParserHandler handler = null;        //锟斤拷取一锟斤拷SAXParserFactory锟斤拷实锟斤拷        SAXParserFactory factory = SAXParserFactory.newInstance();        //通锟斤拷factory锟斤拷取SAXParser实锟斤拷        try {            SAXParser parser = factory.newSAXParser();            //锟斤拷锟斤拷SAXParserHandler锟斤拷锟斤拷           handler = new SAXParserHandler();            parser.parse("books.xml", handler);            System.out.println("~!~!~!共有" + handler.getBookList().size()                    + "本书");            for (Book book : handler.getBookList()) {                System.out.println(book.getId());                System.out.println(book.getName());                System.out.println(book.getAuthor());                System.out.println(book.getYear());                System.out.println(book.getPrice());                System.out.println(book.getLanguage());                System.out.println("----finish----");            }        } catch (ParserConfigurationException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (SAXException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    return handler.getBookList();  }  public static void creatXML() throws TransformerConfigurationException, IOException, SAXException{      //获取要转换的ArrayList     ArrayList<Book> bookList =  parseXML();     //创建xml     //1.通过SAXTransformerFactory对象     SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory.newInstance();     //2.通过SAXTransformerFactory对象tff创建TransformerHandler对象handler     TransformerHandler handler = tff.newTransformerHandler();     //3.通过handler对象创建transFormer对象     Transformer tr =  handler.getTransformer();     //4.通过Transformer对象对XML文件进行设置     tr.setOutputProperty(OutputKeys.INDENT , "yes");//换行     tr.setOutputProperty(OutputKeys.ENCODING, "utf-8");//设置xml编码     //5.创建Result对象并使其与handler进行关联     File f = new File("src/newbook.xml");     if(!f.exists()){         f.createNewFile();     }     Result result = new StreamResult(new FileOutputStream(f));     handler.setResult(result);//与handler进行关联     //6,通过handler对xml文件进行写     //打开document     handler.startDocument();     AttributesImpl atts = new AttributesImpl();//创建属性对象     handler.startElement("","" , "bookstore", atts);     for (Book book : bookList) {         atts.clear();//清除上一个         atts.addAttribute("", "", "id", "", book.getId());            handler.startElement("","" , "book", atts);                handler.characters(book.getName().toCharArray(), 0, book.getName().length());            handler.endElement("", "", "book");         handler.endElement("", "", "bookstore");    }     //关闭document      handler.endDocument();  }     public static void main(String[] args) throws TransformerConfigurationException, IOException, SAXException {        // TODO Auto-generated method stub        creatXML();    }
0 0
原创粉丝点击