java XML 文件
1. XML的概念
可擴展標記語言,它可以用來標記數據、定義數據類型,是一種允許用戶對自己標記語言進行定義的源語言。XML的簡單易於在任何應用程序中讀/寫數據,這使XML成爲數據交互的唯一共同語言。
2. 基本語法
2.1 基本語法格式
- XML文件名後綴是.xml
- XML第一行是對當前文件的定義聲明
- XML文件中有且只有一個根標籤
- 屬性值必須使用引號包含
- 標籤必須正確匹配,正確開始和關閉
- XML標籤內嚴格區分大小寫
<?xml version="1.0" encoding="utf-8">
<users>
<user id="1">
<name>小明</name>
<age>16</age>
<gender>male</gender>
</user>
<user id="1">
<name>小明</name>
<age>16</age>
<gender>male</gender>
</user>
</user>
2.2 XML文件組成
- 文檔聲明: <?xml 屬性列表 ?>
<?xml version = "1.0" encoding = "utf - 8" ?>
version : 當前xml文件版本號
encoding : 編碼方式 - 標籤內容自定義:
a. 自定義標籤允許使用英文字母,數字和其他標點符號。
b. 不允許使用數組和標點符號開頭,只能用英文字母。
c. 不允許在自定義標籤內使用xml標記,XML也不行
d. 名字不允許出現空格 - 屬性
可以給標籤一個屬性,有時候要求ID屬性是唯一的
3. XML解析
3.1 XML解析思路
3.1.1 DOM解析
Document Object Model 文件對象模型
把XML整個文件看做一個Document對象,每一個節點看做一個Element,節點中有Attribute,或者當前節點中存在Text文本內容。
DOM是將整個XML文件讀取到計算機內存中,可以進行CRUD操作。
缺點:佔用了大量的內存
適用環境:服務器對於XML文件的解析過程。
3.1.2 SAX解析
逐行讀取,給予一定的事件操作。
讀取一行內容,釋放上一行內容,可以有效的節約內存空間
缺點:
不能對XML文件,進行增刪改
適用的環境:
手機讀取解析XML文件時採用的方式
3.2 XML文件解析工具
- JAXP: SUN提供的一個基本的解析器,支持DOM和SAX兩種解析方式,但是操作很繁瑣,不便於程序員開發。
- Dom4j::DOM For Java 一款非常優秀的解析器。
- Jsoup :基於Java完成的對於HTML解析的工具,因爲HTML和XML文件都是標記語言。
- PULL:Android手機上集成的XML解析工具,SAX方式解析
Dom4j
涉及方法
- SAXReader();
解析XML文件使用的核心類
read() --> XML文件Document對象 - Document對象中可以使用方法
Element getRootElement(); 獲取當前XML文件的根節點對象 - Element對象中可以使用方法
List elements();
當前節點下的所有子節點
List elements(String name);
當前節點下所有指定名字的子節點
Attribute attribute(String name);
根據屬性名獲取對應的屬性對象Attribute
Attribute節點中可以使用String getValue()來獲取對應的節點數據
String getName();
獲取當前節點的名字
String getText();
獲取當前節點對應的文本數據
// 當前XML文件的Document對象
Document document = new SAXReader().read(new File("./xml/User.xml"));
// 獲取根節點 Root Element
Element rootElement = document.getRootElement();
// 獲取Root Element下子節點
List<Element> elements = rootElement.elements();
Element teacher = rootElement.element("teacher");
// 獲取屬性節點指定屬性值
System.out.println(teacher.attribute("id").getValue());