路徑運算式
通過路徑快速的查找一個或一組元素 路徑運算式:
- / : 從根節點開始查找
- // : 從發起查找的節點位置 查找后代節點 ***
- . : 查找當前節點
- … : 查找父節點
- @ : 選擇屬性. * 屬性使用方式: [@屬性名=‘值’] [@屬性名>‘值’] [@屬性名<‘值’] [@屬性名!=‘值’]
books: 路徑: //book[@id=‘1’]//name
books
book id=1
name
info
book id=2
name
info
使用步驟
通過Node類的兩個方法, 來完成查找: (Node是 Document 與 Element 的父介面)
方法1. //根據路徑運算式,
查找匹配的單個節點 Element e = selectSingleNode(“路徑運算式”);
方法2. List es = selectNodes(“路徑運算式”);
案例:
String phone = "輸入自己的手機號";
//1. 獲取到XML資源的輸入流
URL url = new URL("http://apis.juhe.cn/mobile/get?
phone="+phone+"&dtype=xml&key=9f3923e8f87f1ea50ed4ec8c39cc9253");
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
//2. 創建一個XML讀取物件
SAXReader sr = new SAXReader();
//3. 通過讀取物件 讀取XML資料,并回傳檔案物件
Document doc = sr.read(is);
Node node = doc.selectSingleNode("//company");
System.out.println("運營商:"+node.getText());
is.close();
Java生成XML
步驟:
- 通過檔案幫助器 (DocumentHelper) , 創建空的檔案物件 Document doc = DocumentHelper.createDocument();
- 通過檔案物件, 向其中添加根節點 Element root = doc.addElement(“根節點名稱”);
- 通過根節點物件root , 豐富我們的子節點 Element e = root.addElement(“元素名稱”);
- 創建一個檔案輸出流 ,用于存盤XML檔案 FileOutputStream fos = new FileOutputStream(“要存盤的位置”);
- 將檔案輸出流, 轉換為XML檔案輸出流 XMLWriter xw = new XMLWriter(fos);
- 寫出檔案 xw.write(doc);
- 釋放資源 xw.close();
案例:
//1. 通過檔案幫助器, 創建空的檔案物件
Document doc = DocumentHelper.createDocument();
//2. 向檔案物件中, 加入根節點物件
Element books = doc.addElement("books");
//3. 向根節點中 豐富子節點
for(int i=0;i<1000;i++) {
//向根節點中加入1000個book節點.
Element book = books.addElement("book");
//向book節點, 加入id屬性
book.addAttribute("id", 1+i+"");
//向book節點中加入name和info節點
Element name = book.addElement("name");
Element info = book.addElement("info");
name.setText("蘋果"+i);
info.setText("哈哈哈"+i);
}
//4. 創建檔案的輸出流
FileOutputStream fos = new FileOutputStream("c:\\books.xml");
//5. 將檔案輸出流 , 轉換為XML檔案輸出流
XMLWriter xw = new XMLWriter(fos);
//6. 寫出XML檔案
xw.write(doc);
//7. 釋放資源
xw.close();
System.out.println("代碼執行完畢");
XStream 的使用
- 快速的將Java中的物件, 轉換為 XML字串.
使用步驟:
1. 創建XStream 物件
XStream x = new XStream();
2.修改類生成的節點名稱 (默認節點名稱為 包名.類名)x.alias("節點名稱",類名.class);
3. 傳入物件 , 生成XML字串
String xml字串 = x.toXML(物件);
案例:
Person p = new Person(1001, "張三", "不詳");
XStream x = new XStream();
x.alias("haha", Person.class);
String xml = x.toXML(p);
System.out.println(xml);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/267509.html
標籤:java
下一篇:pycharm系統檔案找不到
