java解析xml檔案

來源:互聯網
上載者:User

標籤:

    為什麼使用xml作為資料交換?為什麼用java解析xml?為什麼用dom4J解析xml?dom解析和sax解析到底有什麼區別?

    帶著這樣的問題去學習,你發現這樣的學習是最高效的

    首先第一個問題:為什麼使用xml作為資料交換

       首先xml是一種無平台限制,無語言限制,無系統限制.使得xml可以在不同語言寫的系統進行資料的交換,不同語言寫的系統之間需求是不會改變,可能xml這種傳輸資料的介質會被其他的替代.比如json,可能json也會面臨被替代.方式改變.但是需求是不會改變的.而且xml樹節點的結構滿足soap(simple object access protocol)簡易物件存取通訊協定 (SOAP).

    第二個問題:為什麼使用java解析xml

       你可以用任何一種語言,這個沒有做要求

    第三個問題:為什麼用dom4j解析xml

       java的xml解析有dom解析和sax解析,dom解析又有dom4j和jdom解析,這兩者都差不都.使用哪一種看個人需求.(回答在第四個問題);

    第四個問題:dom解析和sax解析到底有是區別?

      dom解析會把整個文檔樹都加到記憶體,而sax是屬於事件驅動型的.當遇到事件的觸發才會回呼函數.xml檔案內容比較大的時候.dom解析就會很慢,sax就會比較快.

    實用dom4j建立xml代碼

private Document document;    @Override    public void createXml(String fileName) {        // 擷取document        this.document = DocumentHelper.createDocument();        // 建立根節點        Element employees = document.addElement("employees");        // 建立下一個節點        Element em1 = employees.addElement("employee");        Element name1 = em1.addElement("name");        Element age1 = em1.addElement("age");        Element em2 = employees.addElement("employee");        Element name2 = em2.addElement("name");        Element age2 = em2.addElement("age");        // 建立節點元素的屬性        name1.setText("jack");        age1.setText("20");        name2.setText("amy");        age2.setText("30");        // 建立流        try {                        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File(fileName)));            xmlWriter.write(document);        } catch (IOException e) {            e.printStackTrace();        }        // 寫出去    }

  實用dom4j解析xml代碼

@Override    public void praserXml(String fileName) {        File xmlFile = new File(fileName);        SAXReader sax = new SAXReader();        try {            document = sax.read(xmlFile);            Element root = document.getRootElement();            for(Iterator<Element> ite = root.elementIterator();ite.hasNext();){                Element element = ite.next();                for(Iterator<Element> it = element.elementIterator();it.hasNext();){                    Element ele = it.next();                    System.out.println(ele.getName() + "--" + ele.getText());                }            }        } catch (DocumentException e) {            e.printStackTrace();        }            }

 

java解析xml檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.