xpath笔记

3 xPath技术  

3.1 引入

问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!!

3.2 xPath作用

主要是用于快速获取所需的节点对象。

 

3.3 dom4j中如何使用xPath技术

1)导入xPath支持jar包 。  jaxen-1.1-beta-6.jar

2)使用xpath方法

List<Node>  selectNodes("xpath表达式");   查询多个节点对象

Node       selectSingleNode("xpath表达式");  查询一个节点对象

 

3.4 xPath语法

/      绝对路径      表示从xml的根位置开始或子元素(一个层次结构)

//     相对路径       表示不分任何层次结构的选择元素。

*      通配符         表示匹配所有元素

[]      条件           表示选择什么条件下的元素

@     属性            表示选择属性节点

and     关系          表示条件的与关系(等价于&&

text()    文本           表示选择文本内容

  3.5 案例

用户登录功能:

用户输入用户名和密码 -> 到“数据库”查询是否有对应的用户 ->

有: 则表示登录成功

没有: 则表示登录失败

 

xml当做数据库

user.xml   用来存储用户的数据

 

 1 package Xpath;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.File;
 5 import java.io.InputStreamReader;
 6 
 7 import org.dom4j.Document;
 8 import org.dom4j.Element;
 9 import org.dom4j.io.SAXReader;
10 
11 public class 模拟用户登录 {
12     public static void main(String[] args) throws Exception{
13         //1。获取用户输入的用户名和密码
14         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
15         
16         System.out.println("请输入用户名:");
17         String name = br.readLine();
18         
19         System.out.println("请输入密码:");
20         String password = br.readLine();
21         
22         //2.到数据库中查找是否有对相应用户
23         Document doc = new SAXReader().read(new File("./src/user.xml"));
24         Element elem = (Element)doc.selectSingleNode("//user[@name='" +name+ "' and @password='" +password+ "']");
25         
26         if(elem != null){
27             System.out.println("登录成功");
28             
29         }else{
30             System.out.println("登陆失败");
31         }
32     }
33 }
模拟用户登录

 

posted @ 2021-03-10 16:50  wbnsyw  阅读(26)  评论(0)    收藏  举报