用java操作XML文件(DOM解析方式)


  XML 可擴展標記語言(Extensible Markup Language),是獨立於軟件和硬件的傳輸工具。

  XML的作用:

        (1)用作配置文件

        (2)簡化數據共享

        (3)簡化數據傳輸

 

  XML DOM解析方式

    在java工程中導入dom4j.jar包.

  (一)用java讀XML文件

    <1>創建SAXReader對象.

      RAXReader reader=new RAXReader();

    <2>調用RAXReaderDocument read(File file)方法,獲取xml文件的Document對象(包含xml文件的dom結構).

      Document doc=reader.read(new File("config.xml")); 

      注:read有很多重載方法,還可以傳入流對象.

    <3>調用DocumentElement getRootElement()方法,獲取xml的根元素.

      Element root=doc.getRootElement();

    <4>獲取根元素之后,有很多Element方法,利用這些方法就可以不斷的解析xml的dom結構.

      (1)獲取當前元素下的所有子元素

        List<Element> elements()

      (2)獲取當前元素下的所有同名子元素

        List<Element> elements(String name)

      (3)獲取當前元素指定名稱的子元素

        Element element(String name)

      (4)獲取當前元素的名稱

        String getName()

      (5)獲取當前元素的內容

        String getText()

        String getTextTrim()

      (6)獲取當前元素下指定名稱的子元素內容

        String elementText(String name)

      (7)獲取當前元素的屬性

        Attribute attribute(int index)  //獲取當前元素第index屬性,從0開始

        Attribute attribute(String name)  //獲取當前元素指定名稱的屬性

   <5>屬性Attribute的相關方法

      (1)獲取當前屬性的名稱

        String getName()

      (2)獲取當前屬性的值

        String getValue()

 

(二)用java寫xml文件

    先創建document對象,然后不斷補全document的DOM結構,最后把document對象寫入指定xml文件中

    <1>先創建一個document對象,必須使用DocumentHelper的靜態方法Document  static createDocument()來創建document對象 

      Document doc=DocumentHelper.createDocument()

    <2>頂用DocumentElement addElement()向document對象中添加指定名稱根元素(只能調用一次,因為根元素只有一個)

       Element root=doc.addElement(String name)

     <3>后續,Element有很多方法,用於不斷的補全Document的DOM結構

      (1)在當前元素下添加指定名稱的子元素(返回值是子元素)

        Element addElement(String name)

      (2)在當前元素添加其內容(返回值當前元素)

        Element addText(String text)

      (3)在當前元素添加器屬性(返回值是當前元素,可以不斷追加其屬性)

        Element addAttribute(String name,String value)

     <4>補全DOM結構后,把document對象寫入xml文件中

      (1)創建XMLWriter高級流對象

        XMLWriter writer=new XMLWriter();

        注:XMLWriter writer=new XMLWriter(OutputStream os);,可省略第二步

      (2)為XMLWriter設定低級輸出流

        FileOutputStream fos=new FileOutputStream("new.xml");

        writer.setOutputStream(fos);

      (3)將document對象寫入xml文件中

        wirter.write(doc);

      (4)最后關閉XMLWriter流對象

        writer.close();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM