xpath登陆案例:


用户登录功能:



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



       有: 则表示登录成功



       没有: 则表示登录失败     



用xml当做数据库



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



java代码:


package com.dom4j.xpath;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class Login {
public static void main(String[] args) throws Exception {
//获取输入字符流
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//登陆提示与接收
System.out.println("请输入用户名:");
String userName = br.readLine().trim();//去掉字符串两边空格,防止异常
System.out.println("请输入密码:");
String password = br.readLine().trim();//去掉字符串两边空格,防止异常

//验证是否登陆成功
login(userName, password);
}
private static void login(String userName, String password) throws Exception {
//读取login.xml中的文件
Document document = new SAXReader().read(new File("./src/login.xml"));

/*
* 方式1:
*/
//查找name属性值为传入的userName的user标签
String xpath = "//user[@userName='" + userName +"']";
/* Element ele = (Element)document.selectSingleNode(xpath);
if(ele != null){//假如用户名存在
//读取所有name属性值为传入的userName的user标签中的属性名为password的属性值
String pwd = ele.attributeValue("password");
if(password.equals(pwd)){//如果密码也匹配
System.out.println("恭喜【" + userName + "】登陆成功!!!");
}else{
System.out.println("对不起您的密码输入错误!!!");
}
}else{
System.out.println("该用户名不存在!!!");
}
*/
/*
* 方式2:
*/
//查找userName属性值为“用户输入”,且password属性值为“用户输入”的user标签
xpath = "//user[@userName='" + userName + "' and @password='" + password + "']";
Node node = document.selectSingleNode(xpath);
if(node != null){//查找到的user标签存在,则登陆成功
System.out.println("恭喜【" + userName + "】登陆成功!!!");
}else{
System.out.println("登陆失败!!!");
}
}
}




login.xml数据库:


<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="001" userName="木丁西" password="1234"></user>
<user id="002" userName="admin" password="admin"></user>
<user id="003" userName="刘先森" password="刘先森"></user>
</users>




效果:


xpath登陆案例_xml


xpath登陆案例_xPath_02