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

xpath就在此情况下产生了——主要是用于快速获取所需的[节点对象]。

在dom4j中如何使用xPath技术

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

2)使用xpath方法

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

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

xPath语法

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

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

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

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

@     属性            表示选择属性节点

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

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

案例

用户登录功能:

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

有:则表示登录成功

没有:则表示登录失败

用xml当做数据库

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

代码如下:

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;/*** xpath案例: 模拟用户登录效果* @author APPle**/
public class Demo3 {public static void main(String[] args)throws Exception{//1.获取用户输入的用户名和密码BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//封装键盘录入,输入流System.out.println("请输入用户名:");String name = br.readLine();System.out.println("请输入密码:");String password = br.readLine();//2.到“数据库”中查询是否有对应的用户//对应的用户:  在user.xml文件中找到一个//name属性值为‘用户输入’,且password属性值为‘用户输入’的user标签Document doc = new SAXReader().read(new File("./src/user.xml"));Element userElem = (Element)doc.selectSingleNode("//user[@name='" +name +"' and @password='"+password+"']");//在字符串中拼接变量的方法——先加一个双引号,再把光标移到双引号中间,写两个加号,再把光标移到加号中间写上变量。//System.out.println(userElem.getName());//查看当前节点对象内容if(userElem!=null){//说明在“数据库”里面找到了用户名和密码。//登录成功System.out.println("登录成功");}else{//登录失败System.out.println("登录失败");}}}

转载于:https://www.cnblogs.com/wanghang/p/6299721.html

xpath技术解析xml以及案例模拟用户登录效果相关推荐

  1. dom技术解析xml下jaxp解析器详细代码

    1.使用jaxp实现查询操作 person.xml <?xml version="1.0" encoding="UTF-8" standalone=&qu ...

  2. 【Python养成】:案例(身高体重BMI值、模拟用户登录系统、键盘录入10个学生的成绩,计算出最高分、最低分和成绩总和、词频统计)

    案例题目:身高体重BMI值 计算成人身高体重指数BMI值.公式:bmi = 体重 / (身高 * 身高),体重的单位是千克,身高的单位是米 .键盘输入身高和体重值,计算bmi值,并根据结果对用户做出友 ...

  3. python模拟用户登录爬取阳光采购平台数据

    阳光采购平台每月初会把当月的价格挂到平台上,现模拟用户登录平台,将需要的数据保存到csv文件和数据库,并且发送给指定人员. 开发环境搭建: 网上教程一大堆,不赘述了.安装好后需要安装一些必须的库,如下 ...

  4. scrapy模拟用户登录

    scrapy框架编写模拟用户登录的三种方式: 方式一:携带cookie登录,携带cookie一般请求的url为登录后的页面,获取cookie信息应在登录后的页面获取,cookie参数应转成字典形式 # ...

  5. 案例:用户登录(html--servlet--mysql)

    案例:用户登录(html–servlet–mysql) 需要用到的内容:HTML+CSS,Tomcat,Servlet,DBUtils,c3p0,MySQL 1.创建web项目student_mana ...

  6. #博学谷it学习技术支持#探花交友项目:用户登录

    #博学谷it学习技术支持#探花交友项目:用户登录 目录: 一.基本执行流程 二.Service模块内容的编写: 三.Dabbo模块下: 四.model(实体类)模块下: 五.思维导图 正文: 用户登录 ...

  7. 用C语言实现“模拟用户登录情景”、“猜数字小游戏”

    for循环,这种情况,break跳出循环,直接打印0123:记录一下 2.实现左右增加字符,如下图所示,要想到用数组,左右增加变量,再加入延迟,sleep的头文件是#<windows.h> ...

  8. javaweb——模拟用户登录和新闻发布

    目录 模拟用户登录 1.登录界面: 注意点:验证码 2.对登录界面与数据库实现数据交互: 3.登录成功页面: 新闻发布 1.发布新闻页面 2.发布新闻数据和数据交互: 注意点:新增id 3.发布新闻成 ...

  9. python小练习--模拟用户登录,(3次重试机会,登录成功展示登录账号密码)

    知识点使用:1.格式化输出的两种方法---% .formate 2.while循环的使用,及跳出循环的两种方法---break(跳出循环体).continue(结束本次循环,继续下次循环) 3.if条 ...

最新文章

  1. C# VC HTTP POST GET(转)
  2. 51nod 3 * problem
  3. sentinel 时间窗口_Sentinel潜龙勿用篇
  4. 1_4 BuilderMode 建造者模式
  5. Dijkstra迪杰斯特拉算法 C++实现
  6. 【牛客 - 318F】关于我转生变成史莱姆这档事(二分,搜索)
  7. 全民一起玩python课件_全民一起玩Python课基础+提高篇[免费学习]
  8. Python实现鸢尾花数据集分类问题——基于skearn的LogisticRegression
  9. 移动端日期控件 mobiscroll
  10. HTML基础网页布局代码写法
  11. 第六章jQuery选择器
  12. unity3d游戏开发之UV贴图教程
  13. PyTorch 深度学习入门
  14. Jeff Dean 的传奇人生:超级工程师们拯救谷歌
  15. 大数据技术基础学习总结
  16. 事件的互不相容和独立的区别
  17. linux服务器创建用户
  18. 使用 TreeView IE Web 控件
  19. CANoe:CAN报文发送前的字节预处理(applILTxPending函数)
  20. 如何提取fq.gz中的文件_什么是GZ文件类型或扩展名? 如何创建,提取和打开Gz文件?...

热门文章

  1. 栈和队列--算法设计题3.15
  2. R语言常用包分类总结
  3. matlab 一个赋值变量赋值,MATLAB 基本语法----变量与赋值
  4. python如何判断tcp异常断开_如何判断TCP连接已经中断?
  5. 堆栈的栈顶和栈底在哪_【c# .net】堆栈(Stack)
  6. java程序试岗内容_java程序员修炼之路基础篇四:继承
  7. linux18.04安装显卡驱动,详细介绍ubuntu18.04安装NVIDIA显卡驱动(亲测有效!)
  8. nginx php 错误日志,PHP 错误与异常的日志记录
  9. ANACONDA安装pytorch后Pycharm无法识别到解释器
  10. opencv标定函数解说