XML 可擴展標記語言(Extensible Markup Language),是獨立於軟件和硬件的傳輸工具。
XML的作用:
(1)用作配置文件
(2)簡化數據共享
(3)簡化數據傳輸
XML DOM解析方式
在java工程中導入dom4j.jar包.
(一)用java讀XML文件
<1>創建SAXReader對象.
RAXReader reader=new RAXReader();
<2>調用RAXReader的Document read(File file)方法,獲取xml文件的Document對象(包含xml文件的dom結構).
Document doc=reader.read(new File("config.xml"));
注:read有很多重載方法,還可以傳入流對象.
<3>調用Document的 Element 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>頂用Document的Element 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();