xml學習筆記
阿新 • • 發佈:2018-12-09
- xml文件規範
<?xml version="1.0" encoding="utf-8" ?>
ANSI為計算機預設編碼,一般為gbk,通常xml使用utf-8編碼
2. xml標籤
xml標籤成對出現,可自定義標籤,標籤可巢狀
空標籤:既是開始標籤,也是結束標籤
3. 屬性的定義與註釋
<!-- 這裡是註釋 --!>
4. cdata(一般少見)
嚴格地講,在 XML 中僅有字元 “<”和”&” 是非法的。省略號、引號和大於號是合法的
< <
& &
- xml解析
一般只用這兩種解析方式
Dom
Sax
Dom4j 基本用法 element.element(“stu”) : 返回該元素下的第一個stu元素 element.elements(); 返回該元素下的所有子元素。
建立SaxReader物件
指定解析的xml
獲取根元素。
根據根元素獲取子元素或者下面的子孫元素
try {
//1. 建立sax讀取物件
SAXReader reader = new SAXReader(); //jdbc -- classloader
//2. 指定解析的xml源
Document document = reader.read(new File("src/xml/stus.xml"));
//3. 得到元素、
//得到根元素
Element rootElement= document.getRootElement();
//獲取根元素下面的子元素 age
//rootElement.element("age")
//System.out.println(rootElement.element("stu").element("age").getText());
//獲取根元素下面的所有子元素 。 stu元素
List<Element> elements = rootElement.elements();
//遍歷所有的stu元素
for (Element element : elements) {
//獲取stu元素下面的name元素
String name = element.element("name").getText();
String age = element.element("age").getText();
String address = element.element("address").getText();
System.out.println("name="+name+"==age+"+age+"==address="+address);
}
} catch (Exception e) {
e.printStackTrace();
}
- Dom4j 的 Xpath使用
dom4j裡面支援Xpath的寫法。 xpath其實是xml的路徑語言,支援我們在解析xml的時候,能夠快速的定位到具體的某一個元素。
1. 新增jar包依賴(百度網盤有檔案)
2. 在查詢指定節點的時候,根據XPath語法規則來查詢
3. 後續的程式碼與以前的解析程式碼一樣。
//要想使用Xpath, 還得新增支援的jar 獲取的是第一個 只返回一個。
Element nameElement = (Element) rootElement.selectSingleNode("//name");
System.out.println(nameElement.getText());
System.out.println("----------------");
//獲取文件裡面的所有name元素
List<Element> list = rootElement.selectNodes("//name");
for (Element element : list) {
System.out.println(element.getText());
}
- xml約束 (瞭解) dtd 語法自成一派, 早起就出現的。 可讀性比較差。 Schema 其實就是一個xml , 使用xml的語法規則, xml解析器解析起來比較方便 , 是為了替代DTD 。但是Schema 約束文字內容比DTD的內容還要多。 所以目前也沒有真正意義上的替代DTD 更多內容去百度網盤下載https://pan.baidu.com/s/1Ms9RHGf8xYdSQyTgXziBDA 密碼:zy45