第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java眼中的XML 文件寫入

難度初級
時長 2小時 0分
學習人數(shù)
綜合評分9.67
227人評價 查看評價
9.8 內容實用
9.7 簡潔易懂
9.5 邏輯清晰
  • package?com.imooc.xmlTest;
    
    import?org.dom4j.DocumentHelper;
    import?org.dom4j.io.OutputFormat;
    import?org.dom4j.io.XMLWriter;
    import?org.jdom2.output.Format;
    import?org.jdom2.output.XMLOutputter;
    import?org.testng.annotations.Test;
    import?org.w3c.dom.Document;
    import?org.w3c.dom.Element;
    import?org.xml.sax.SAXException;
    import?org.xml.sax.helpers.AttributesImpl;
    
    import?javax.xml.parsers.DocumentBuilder;
    import?javax.xml.parsers.DocumentBuilderFactory;
    import?javax.xml.parsers.ParserConfigurationException;
    import?javax.xml.transform.OutputKeys;
    import?javax.xml.transform.Result;
    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.sax.SAXTransformerFactory;
    import?javax.xml.transform.sax.TransformerHandler;
    import?javax.xml.transform.stream.StreamResult;
    import?java.io.File;
    import?java.io.FileOutputStream;
    import?java.io.IOException;
    
    public?class?JUnitTest1?{
    
    ???public?void?DOMCreateXML()?throws?ParserConfigurationException,?TransformerException?{
    ???????DocumentBuilderFactory?dbf=DocumentBuilderFactory.newInstance();
    ???????DocumentBuilder?db=dbf.newDocumentBuilder();
    ???????Document?document=db.newDocument();
    ???????document.setXmlStandalone(true);
    ???????Element?bookstore=document.createElement("bookstore");
    ???????Element?book=document.createElement("book");
    ???????book.setAttribute("id","1");
    ???????Element?name=document.createElement("name");
    ???????name.setTextContent("小王子");
    ???????book.appendChild(name);
    ???????bookstore.appendChild(book);
    ???????document.appendChild(bookstore);
    ???????TransformerFactory?tff=TransformerFactory.newInstance();
    ???????Transformer?tf=tff.newTransformer();
    ???????tf.setOutputProperty(OutputKeys.INDENT,"yes");
    ???????tf.transform(new?DOMSource(document),new?StreamResult(new?File("demo2/books.xml")));
    ???}
    ???public?void?SAXCreateXML()?throws?ParserConfigurationException,?IOException,?SAXException,?TransformerConfigurationException?{
    ???????SAXTransformerFactory?tff=(SAXTransformerFactory)SAXTransformerFactory.newInstance();
    ???????TransformerHandler?handler=tff.newTransformerHandler();
    ???????Transformer?tf=handler.getTransformer();
    ???????tf.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
    ???????tf.setOutputProperty(OutputKeys.INDENT,"yes");
    ???????Result?result=new?StreamResult(new?FileOutputStream(new?File("demo2/books1.xml")));
    ???????handler.setResult(result);
    ???????handler.startDocument();
    ???????AttributesImpl?attr=new?AttributesImpl();
    ???????handler.startElement("","","bookstore",attr);
    ???????????attr.clear();
    ???????????attr.addAttribute("","","id","","1");
    ???????????handler.startElement("","","book",attr);
    ???????????attr.clear();
    ???????????handler.startElement("","","name",attr);
    ???????????String?name="小王子";
    ???????????handler.characters(name.toCharArray(),0,name.length());
    ???????????handler.endElement("","","name");
    ???????????handler.endElement("","","book");
    ???????????handler.endElement("","","bookstore");
    ???????????handler.endDocument();
    ???}
    ???public?void?JDOMCreateXML()?throws?IOException?{
    ???????org.jdom2.Element?bookstore=new?org.jdom2.Element("bookstore");
    ???????org.jdom2.Document?document=new?org.jdom2.Document(bookstore);
    ???????org.jdom2.Element?book=new?org.jdom2.Element("book");
    ???????book.setAttribute("id","1");
    ???????org.jdom2.Element?name=new?org.jdom2.Element("name");
    ???????name.setText("小王子");
    ???????book.addContent(name);
    ???????bookstore.addContent(book);
    ???????Format?format=Format.getPrettyFormat();
    ???????format.setEncoding("gbk");
    ???????XMLOutputter?xmlOutputter=new?XMLOutputter(format);
    ???????xmlOutputter.output(document,new?FileOutputStream("demo2/books2.xml"));
    ???}
    ???public?void?DOM4JCreateXML()?throws?IOException?{
    ???????org.dom4j.Document?document=?DocumentHelper.createDocument();
    ???????org.dom4j.Element?bookstore=document.addElement("bookstore");
    ???????org.dom4j.Element?book=bookstore.addElement("book");
    ???????book.addAttribute("id","1");
    ???????org.dom4j.Element?name=book.addElement("name");
    ???????name.setText("小王子");
    ???????OutputFormat?outputFormat=OutputFormat.createPrettyPrint();
    ???????XMLWriter?xmlWriter=new?XMLWriter(new?FileOutputStream("demo2/books3.xml"),outputFormat);
    ???????xmlWriter.write(document);
    ???????xmlWriter.close();
    ???}
    ???@Test
    ???public?void?testPerformance()?throws?Exception{
    ???????System.out.println("性能測試:");
    ???????long?start=System.currentTimeMillis();
    ???????DOMCreateXML();
    ???????System.out.println("DOM:"+(System.currentTimeMillis()-start));
    ???????start=System.currentTimeMillis();
    ???????SAXCreateXML();
    ???????System.out.println("SAX:"+(System.currentTimeMillis()-start));
    ???????start=System.currentTimeMillis();
    ???????JDOMCreateXML();
    ???????System.out.println("JDOM:"+(System.currentTimeMillis()-start));
    ???????start=System.currentTimeMillis();
    ???????DOM4JCreateXML();
    ???????System.out.println("DOM4J:"+(System.currentTimeMillis()-start));
    ???}
    }

    SAX的測試結果為0,這是不是有問題

    http://img1.sycdn.imooc.com//62248f03000137cf14300581.jpg

    查看全部
  • JDOM 設置 XML 格式
    format.setIndent("");//這樣寫已經默認換行了,這里面不需要再寫\n,否則就換兩行了。

    Element title = new Element("title");
    title.setContent(new CDATA("上海移動互聯(lián)網產業(yè)促進中心正式揭牌"));//設置轉義,默認自帶CDATA標簽

    查看全部
  • public void createXML() {
    ? ?ArrayList<Book> books = parserXML();
    ? ?//生成XML
    ? ?//1、創(chuàng)建一個TransformerFactory類的對象
    ? ?SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
    ? ?try {
    ? ? ? ?//通過SAXTransformerFactory對象創(chuàng)建一個TransformerHandler對象
    ? ? ? ?TransformerHandler handler = tff.newTransformerHandler();
    ? ? ? ?//3、通過Handler對象創(chuàng)建一個Transformer對象
    ? ? ? ?Transformer tr = handler.getTransformer();
    ? ? ? ?//4、通過Transformer對象生成的xml文件進行設置:設置xml的編碼;設置xml是否換行
    ? ? ? ?tr.setOutputProperty(OutputKeys.ENCODING, "utf-8");
    ? ? ? ?tr.setOutputProperty(OutputKeys.INDENT, "yes");
    ? ? ? ?//5、創(chuàng)建一個Result對象
    ? ? ? ?File file = new File("src/res/newbooks.xml");
    ? ? ? ?if (file.exists()) {
    ? ? ? ? ? ?file.createNewFile();
    ? ? ? ?}
    ? ? ? ?//創(chuàng)建Result對象,并且使其與handler關聯(lián)
    ? ? ? ?Result result = new StreamResult(new FileOutputStream(file));
    ? ? ? ?handler.setResult(result);
    ? ? ? ?//7、利用handler對象進行xml文件內容的編寫
    ? ? ? ?//打開document
    ? ? ? ?handler.startDocument();
    ? ? ? ?AttributesImpl attr = new AttributesImpl();
    ? ? ? ?handler.startElement("", "", "bookstore", attr);
    ? ? ? ?for (Book book : books) {
    ? ? ? ? ? ?attr.clear();
    ? ? ? ? ? ?attr.addAttribute("", "", "id", "", book.getId());
    ? ? ? ? ? ?handler.startElement("", "", "book", attr);
    ? ? ? ? ? ?//創(chuàng)建name節(jié)點
    ? ? ? ? ? ?if (book.getName() != null && !book.getName().trim().equals("")) {
    ? ? ? ? ? ? ? ?attr.clear();
    ? ? ? ? ? ? ? ?handler.startElement("", "", "name", attr);
    ? ? ? ? ? ? ? ?handler.characters(book.getName().toCharArray(), 0, book.getName().length());
    ? ? ? ? ? ? ? ?handler.endElement("", "", "name");
    ? ? ? ? ? ?}
    ? ? ? ? ? ?//創(chuàng)建year節(jié)點
    ? ? ? ? ? ?if (book.getYear() != null && !book.getYear().trim().equals("")) {
    ? ? ? ? ? ? ? ?attr.clear();
    ? ? ? ? ? ? ? ?handler.startElement("", "", "year", attr);
    ? ? ? ? ? ? ? ?handler.characters(book.getYear().toCharArray(), 0, book.getYear().length());
    ? ? ? ? ? ? ? ?handler.endElement("", "", "year");
    ? ? ? ? ? ?}
    ? ? ? ? ? ?//創(chuàng)建author節(jié)點
    ? ? ? ? ? ?if (book.getAuthor() != null && !book.getAuthor().trim().equals("")) {
    ? ? ? ? ? ? ? ?attr.clear();
    ? ? ? ? ? ? ? ?handler.startElement("", "", "author", attr);
    ? ? ? ? ? ? ? ?handler.characters(book.getAuthor().toCharArray(), 0, book.getAuthor().length());
    ? ? ? ? ? ? ? ?handler.endElement("", "", "author");
    ? ? ? ? ? ?}
    ? ? ? ? ? ?//創(chuàng)建price節(jié)點
    ? ? ? ? ? ?if (book.getPrice() != null && !book.getPrice().trim().equals("")) {
    ? ? ? ? ? ? ? ?attr.clear();
    ? ? ? ? ? ? ? ?handler.startElement("", "", "price", attr);
    ? ? ? ? ? ? ? ?handler.characters(book.getPrice().toCharArray(), 0, book.getPrice().length());
    ? ? ? ? ? ? ? ?handler.endElement("", "", "price");
    ? ? ? ? ? ?}
    ? ? ? ? ? ?//創(chuàng)建language節(jié)點
    ? ? ? ? ? ?if (book.getLanguage() != null && !book.getLanguage().trim().equals("")) {
    ? ? ? ? ? ? ? ?attr.clear();
    ? ? ? ? ? ? ? ?handler.startElement("", "", "language", attr);
    ? ? ? ? ? ? ? ?handler.characters(book.getLanguage().toCharArray(), 0, book.getLanguage().length());
    ? ? ? ? ? ? ? ?handler.endElement("", "", "language");
    ? ? ? ? ? ?}
    ? ? ? ? ? ?handler.endElement("", "", "book");
    ? ? ? ?}
    ? ? ? ?handler.endElement("", "", "bookstore");
    ? ? ? ?//關閉document
    ? ? ? ?handler.endDocument();
    ? ?} catch (TransformerConfigurationException e) {
    ? ? ? ?e.printStackTrace();
    ? ?} catch (FileNotFoundException e) {
    ? ? ? ?e.printStackTrace();
    ? ?} catch (IOException e) {
    ? ? ? ?e.printStackTrace();
    ? ?} catch (SAXException e) {
    ? ? ? ?e.printStackTrace();
    ? ?}
    }

    查看全部
  • 生成XML文件的四種方式:DOM,SAX,DOM4J、JDOM

    后兩種方法會生成一個全新形式的文件——RSS

    查看全部
    0 采集 收起 來源:課程簡介

    2020-07-27

  • java xml 2
    查看全部
    0 采集 收起 來源:課程簡介

    2019-12-12

  • 生成xml文件性能對比

    查看全部
  • 四種生成xml方式對比

    查看全部
  • 常用的節(jié)點類型

    查看全部
  • 生成xml性能對比

    http://img1.sycdn.imooc.com//5dd251010001b7b307510468.jpg


    查看全部
  • 四種生成xml方式對比

    DOM基于tree ,生成的DOM樹保存在內存中,方便重新排列、刪除、修改

    SAX基于事件,生成后無法回頭修改

    JDOM、DOM4J基于底層API

    查看全部
  • JDOM設置XML格式

    http://img1.sycdn.imooc.com//5dd24bb40001a30c07930171.jpg

    查看全部
  • JDOM添加子節(jié)點及節(jié)點間文本

    http://img1.sycdn.imooc.com//5dd24abf0001c01607490220.jpg

    查看全部
  • JDOM生成XML根節(jié)點

    http://img1.sycdn.imooc.com//5dd249660001955b08940295.jpg

    查看全部
  • 處理轉義字符

    轉義代表< 、>符號在xml中進行轉義為&lt;&gt;

    XMLWriter的setEscapeText(false) 設置是否轉義,默認值true,代表轉義

    http://img1.sycdn.imooc.com//5dd2480b0001140606970265.jpg


    查看全部
    0 采集 收起 來源:處理轉義字符

    2019-11-18

  • 生成子節(jié)點和內容并設置換行

    http://img1.sycdn.imooc.com//5dd246aa0001bc9f07230291.jpg

    查看全部
  • 生成RSS根節(jié)點以version屬性

    http://img1.sycdn.imooc.com//5dd2459e000118e207220385.jpg

    查看全部
  • RSS是用來描述和同步網站內容的格式,本質是xml

    查看全部
    0 采集 收起 來源:什么是 RSS

    2019-11-16

  • characters() 在xml標簽之間添加文本,第一個參數(shù)是字符串的char數(shù)組,使用toCharArray()轉化,第二個參數(shù)是字符數(shù)組的起始位置,第二個參數(shù)是從起始位置開始截取的長度。

    注意:如果將setResult方法放在startDocument之后會報錯。

    http://img1.sycdn.imooc.com//5dcfa3710001e6d208730289.jpg

    查看全部
  • AttributesImpl的clear()方法清除屬性 ,addAttribute()前兩個參數(shù)與命名空間有關,第三個參數(shù)是屬性名,第四個參數(shù)是屬性類型,第五個參數(shù)是屬性值

    startDocument() 打開document

    endDocument() 關閉document

    startElement()前兩個參數(shù)與命名空間有關,第三個參數(shù)代表標簽名稱,第四個參數(shù)是屬性集AttributesImpl對象

    endElement()前兩個參數(shù)與命名空間有關,第三個參數(shù)代表標簽名稱

    注意:setOutProperty要生效必須在setResult方法之前。

    http://img1.sycdn.imooc.com//5dcf9f3300017d7e05960290.jpg

    查看全部
  • SAX生成XML準備工作

    http://img1.sycdn.imooc.com//5dcf994f00013b4c08610424.jpg

    http://img1.sycdn.imooc.com//5dcf9975000138af07220215.jpg

    查看全部
  • Document的setXmlStandalone(true) 可以在xml首行中除去standalone屬性

    設置xml的值不應使用setNodeValue("") 應該使用setTextContent("")

    http://img1.sycdn.imooc.com//5dcf94900001191a06720151.jpg

    查看全部
  • 使用Transormer的transform方法將Document對象轉化為xml文件

    setOutputProperty(OutputKeys.INDENT,"yes")方法可以設置換行

    http://img1.sycdn.imooc.com//5dcf91870001224308610170.jpg

    查看全部
  • 使用DocumentBuilderFactory創(chuàng)建DocumentBuilder對象

    http://img1.sycdn.imooc.com//5dd2520100017b1608590321.jpg

    使用DocumentBuilder對象生成Document對象,調用Document對象的createElement()方法生成節(jié)點, setAttribute("","")方法添加節(jié)點屬性,再調用appendChild()方法將節(jié)點添加到xml中。

    http://img1.sycdn.imooc.com//5dce6f1c000153a507670358.jpg

    查看全部
  • 1.根節(jié)點element,添加屬性 setAttribute()

    2.文件document對象

    3.XMLOutputter對象 outputter.output(document,文件);通過輸出流轉換為xml文件




    查看全部
首頁上一頁1234567下一頁尾頁

舉報

0/150
提交
取消
課程須知
本課程是 Java 的中級課程,需要各位小伙伴們熟悉 Java 面向對象的思想,并能熟練掌握 Java I/O 的相關知識。對什么是XML,如何讀取XML有疑惑的小伙伴們,可以先去學習《Java眼中的XML---文件讀取》進修。
老師告訴你能學到什么?
1、通過DOM方式生成xml文檔 2、通過SAX方式生成xml文檔 3、通過DOM4J方式生成xml文檔 4、通過JDOM方式生成xml文檔 5、不同生成方法大PK

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!