java基礎75 xpth技術(網頁知識)
1、xpth技術
1.1、xpath的作用
主要用於快速獲取所需的節點物件。
list<Node> selectNodes("xpath"); 查詢多個節點物件
selectSingleNode("xpath"); 查詢一個節點物件
1.2、在dom4j中如何使用xpath技術
1.匯入xpath技術jar包:jaxen-1.1-beta-6.jar
2.使用xpath的方法
/ 絕對路徑 表示從xml的跟位置開始或者子元素(一個層次結構)
// 相對路徑 表示不分任何層次結構的選擇元素.
*
[ ] 條件 表示選擇什麼條件下的元素
@ 屬性 表示屬性節點
and 關係 表示條件與關係(等價於&&)
text 文字 表示選擇文字內容
3、例項
例1:
1 package com.shore.xpath; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 6 import org.dom4j.Document; 7 import org.dom4j.DocumentException;8 import org.dom4j.Element; 9 import org.dom4j.io.OutputFormat; 10 import org.dom4j.io.SAXReader; 11 import org.dom4j.io.XMLWriter; 12 13 public class Demo1 { 14 public static void main(String[] args) throws Exception { 15 /* 16 * 需求:刪除id值為001的學生標籤 17 * */ 18 Document doc=newSAXReader().read(new File("./src/contact.xml")); 19 //查詢id為2的學生標籤 20 //使用xpath技術 21 Element stuEle=(Element)doc.selectSingleNode("//contact[@id='001']"); 22 stuEle.detach();//刪除 23 24 //建立寫出通道物件 25 FileOutputStream out=new FileOutputStream("F:/contact.xml"); 26 OutputFormat format=OutputFormat.createPrettyPrint();//設定寫xml出文件的格式 27 format.setEncoding("utf-8"); 28 //寫出xml檔案到F盤下 29 XMLWriter write=new XMLWriter(out,format); 30 //寫出 31 write.write(doc); 32 write.close(); 33 } 34 }
例2:
1 package com.shore.xpath; 2 3 import java.io.File; 4 import java.util.List; 5 6 import org.dom4j.Document; 7 import org.dom4j.Node; 8 import org.dom4j.io.SAXReader; 9 10 /* 11 * 學習xPath語法 12 * */ 13 public class Demo2 { 14 public static void main(String[] args) throws Exception { 15 Document doc=new SAXReader().read(new File("./src/contact.xml")); 16 String xpath=""; 17 /* 18 * 1./ 絕對路徑,從xml的跟位置開始或子元素開始(一個層次) 19 * */ 20 xpath="/contactList"; 21 xpath="/contactList/contact"; 22 /* 23 * 2.// 相對定位,表示部分任何層次結構的選擇元素 24 * */ 25 xpath="//contact[1]/name"; 26 xpath="//name"; 27 /* 28 * 3.* 萬用字元,表示匹配所有元素 29 * */ 30 xpath="/contactList/*"; 31 xpath="/contactList//*"; 32 /* 33 * 4.[] 條件,表示選擇什麼條件下的元素 34 * */ 35 //帶有id屬性的contact標籤 36 xpath="//contact[@id]"; 37 xpath="//contact[2]"; 38 xpath="//contact[last()]"; 39 /* 40 * @ 屬性; and 表示條件與關係(等價於&&) 41 * */ 42 xpath="//@id"; 43 xpath="//contact[not(@id)]"; 44 xpath="//contact[@id='001' and @name='張三']"; 45 /* 46 * text() 表示選擇文字內容 47 * */ 48 //選擇name標籤下的文字內容 49 xpath="//name//text()"; 50 List<Node> list=doc.selectNodes(xpath); 51 for (Node node : list) { 52 System.out.println(node.getText()); 53 } 54 } 55 }
contact.xml文件(注:上面的兩個例項都用到此檔案)
1 <contactList> 2 <contact id="001" name="zhangsan"> 3 <name>張三</name> 4 <age>18</age> 5 <phone>15779593710</phone> 6 <email>[email protected]</email> 7 <qq>872855221</qq> 8 <abc> 9 <a><b></b></a> 10 </abc> 11 </contact> 12 <contact name="zhangsan"> 13 <name>張三</name> 14 <age>18</age> 15 <phone>15779593710</phone> 16 <email>[email protected]</email> 17 <qq>872855221</qq> 18 </contact> 19 <contact id="002"> 20 <name>李四</name> 21 <age>20</age> 22 <phone>1314580</phone> 23 <email>[email protected]</email> 24 <qq>832144529</qq> 25 </contact> 26 </contactList>
附錄
1 package com.shore.login; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 8 import org.dom4j.Document; 9 import org.dom4j.Element; 10 import org.dom4j.io.SAXReader; 11 12 //模擬登陸 13 public class Demo1 { 14 public static void main(String[] args) throws Exception { 15 //1獲取使用者輸入的使用者名稱密碼 16 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 17 System.out.println("請輸入使用者名稱:"); 18 String name=br.readLine(); 19 20 System.out.println("請輸入密碼:"); 21 String password=br.readLine(); 22 23 //2.到資料庫中查詢是否有對應使用者 24 //對應的使用者:在user.xml檔案中找到一個 25 Document doc=new SAXReader().read(new File("./src/user.xml")); 26 Element userElement=(Element)doc.selectSingleNode("//user[@name='"+name+"' and @password='"+password+"']"); 27 28 if(userElement !=null){ 29 //登入成功 30 System.out.println("登入成功!"); 31 32 }else{ 33 //登入失敗 34 System.out.println("登入失敗,賬號或密碼錯誤!"); 35 } 36 } 37 }
user.xml(作用:該檔案中 存在的賬號和密碼,並且一一對應,才能登陸成功)
1 <?xml version="1.0" encoding="utf-8"?> 2 <users> 3 <user id="001" name="zhangsan" password="123456"></user> 4 <user id="002" name="wangwu" password="123456"></user> 5 <user id="003" name="lisi" password="123456"></user> 6 </users>
結果圖
相關推薦
java基礎75 xpth技術(網頁知識)
1、xpth技術 1.1、xpath的作用 主要用於快速獲取所需的節點物件。 list<Node> selectNodes("xpath"); 查詢多個節點物件 selectSingleNode("xpath"); 查詢一個節點物件 1.
java基礎75 待續2(網頁知識)
謝謝 logs borde 幫助 www. targe 轉載 .com http 1、待續 待續 原創作者:DSHORE 作者主頁:http://www.cnblogs.com/dshore123/ 原文出自:https://ww
java基礎74 待續2(網頁知識)
tps str log strong body cnblogs logs blank targe 1、待續 待續 原創作者:DSHORE 作者主頁:http://www.cnblogs.com/dshore123/ 原文出自:
java基礎65 JavaScript中的 (網頁知識)
str order 幫助 ron target logs .com font tro 1、待續 待續 原創作者:DSHORE 作者主頁:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnbl
java基礎70 負責靜態的網頁的制作語言XML(網頁知識)
引號 自定義 交互 ref 特殊 通訊 key alt 如果 HTML:負責網頁結構的CSS:負責網頁的樣式(美觀)JavaScript:負責客戶(瀏覽器)端與用戶進行交互 1、HTML語言的特點 1.由標簽組成 2.語法結構松散 3.大小寫不區分
java基礎73 待續(網頁知識)
bsp 說明 http col tro font -s .cn java基礎 1、待續 待續 原創作者:DSHORE 作者主頁:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnbl
java基礎81 jsp的內置對象(網頁知識)
什麽是 basepath 緬甸 exceptio 中文 bili sun公司 ESS pwrite 1、什麽是內置對象? 在jsp開發中,會頻繁使用到一些對象,如:HttpSession,ServletContext,HttpServletRequest。 如
java基礎73 dom4j修改xml裡面的內容(網頁知識)
1 package com.shore.code; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 import org.dom4j.A
java基礎81 jsp的內建物件(網頁知識)
1、什麼是內建物件? 在jsp開發中,會頻繁使用到一些物件,如:HttpSession,ServletContext,HttpServletRequest。 如果每次使用這些物件時,都要去建立物件 顯示非常麻煩。所有sun公司就設計jsp時,在jsp頁面載入完畢後會自動幫助開發者建立好這些物件,
java基礎74 XML解析中的SAX解析相關知識點(網頁知識)
1、SAX解析工具 SAX解析工具:是Sun公司提供的,內建JDK中。org.xml.sax.* 2、SAX解析的核心API SAXParser類:用於讀取和解析xml檔案物件 parse(File f, DefaultHandler dh)方法----->解析xml檔案
java基礎80 JSP基礎知識點(網頁知識)
1、jsp的引入 Servlet的作用:用java語言開發動態資源技術!!! Jsp的作用:用java語言(+html語言)開發的動態資源技術!!! Jsp就是servlet 問題:為什麼jsp就是servlet? 因為:Jsp翻譯成java檔案 public final class
java基礎71 XML解析中的【DOM和SAX解析工具】相關知識點(網頁知識)
本文知識點(目錄):本文下面的“例項及附錄”全是DOM解析的相關內容 1、xml解析的含義 xml檔案除了給開發者看,更多情況下是使用程式讀取xml檔案中的內容 2、XML的解析方式 DOM解析 SAX解析 3、xml的解析工具 3.1、DOM解析工具 1.JAXP(orac
Java基礎83 待續(網頁知識)
java 主頁 idt htm href www 轉載 -s width 1、待續 待續 原創作者:DSHORE 作者主頁:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.
Java基礎零碎知識點總結(持續補充)
多態 java基礎 引用類型 ram object 轉換 安全 特性 翻譯 1.重載:同名不同參 重寫:同名同參同返回類型(方法體與父類一致),只存在於繼承關系中(多態),需要父類原有方法可用super(),子類函數訪問修飾權限不能少於父類。 2.OOP(Object
JAVA基礎學習之路(十二)鏈表
args 是否為空 鏈表 == lin 一個 ava int 數據類型 定義鏈表的基本結構: class Link {//外部類 //內部類,只為鏈表類服務 private class Node {//定義節點類 private
java基礎類庫學習(四.2)異常處理的陷阱
前言 java的異常類Exception繼承自非正常情況類Throwable,異常類下又分為兩大類:checked異常和runtime異常, 其中發生checked異常的類如果不做處理程式會發生編譯錯誤,導致程式中斷編譯 而runtime異常的類只有在執行階段才會發生,如果不做處理,
java基礎類庫學習(二.3)List子介面的實現類
List子介面的實現類:ArrayList/Vector/LinkedList List集合:元素有序。可重複的集合,List集合預設按元素的新增順序設定元素的索引,通過索引來訪問物件 List集合原始碼? public interface List<E> extends
java基礎類庫學習(二.2)Set子介面的實現類
Set子介面的實現類:HashSet/LinkedHashSet/TreeSet/EnumSet/SortedSet Set子介面和Collection父介面原始碼對比? 1Collection父介面原始碼 public interface Collection&l
java基礎類庫學習(七.3)控制執行緒
前言 執行緒的五個狀態新建/就緒/執行/阻塞/死亡 為了很好的控制執行緒的狀態(新建態,就緒態--執行態控制不了),我們來看一下執行緒物件的幾個方法,也就是Thread的幾個方法 控制執行緒的狀態 1使執行緒處於新建態 執行緒子類 a=new 執行緒子類();  
java基礎類庫學習(七.2)執行緒的生命週期
前言 利用java的類/介面建立好使用者執行緒後,我們呼叫執行緒物件的啟動方法,讓執行緒啟動 執行緒的生命週期:新建new 就緒runnable 執行running 阻塞blocked 死亡die 執行緒會在幾種狀態之間改變 新建new 執行緒類通過繼承Thread實現Run