1. 程式人生 > >java基礎75 xpth技術(網頁知識)

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=new
SAXReader().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基礎類庫學習二.3List子介面的實現類

List子介面的實現類:ArrayList/Vector/LinkedList List集合:元素有序。可重複的集合,List集合預設按元素的新增順序設定元素的索引,通過索引來訪問物件 List集合原始碼? public interface List<E> extends

java基礎類庫學習二.2Set子介面的實現類

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