/**

  • 使用xpath技术取得xml文件中任意级别下的内容 基于dom4j的xpath技术
  • 1)能够在xml文件中,快速定位需要元素,无需从根元素一个一个的导航到需要的子元素
  • Document.selectNodes():取得所有符合xpath格式的元素
  • Document.selectSingleNode():取得所有符合xpath格式的元素的第一个元素
  • Node类型是Element/Text/Attribute/Document/...类型的父接口
  • */

import java.io.File;
import java.util.List;
import java.util.Scanner;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXContentHandler;
import org.dom4j.io.SAXReader;
import org.junit.Test;/*** 使用xpath技术取得xml文件中任意级别下的内容 基于dom4j的xpath技术* 1)能够在xml文件中,快速定位需要元素,无需从根元素一个一个的导航到需要的子元素* Document.selectNodes():取得所有符合xpath格式的元素* Document.selectSingleNode():取得所有符合xpath格式的元素的第一个元素* Node类型是Element/Text/Attribute/Document/...类型的父接口* */public class Xpath {@Testpublic void xpathtest() throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File("src/day2/domx/car.xml"));String xpath = "//单价";List<Element> elementList = document.selectNodes(xpath);for (Element e : elementList) {System.out.println(e.getText());System.out.println("=================");}}@Testpublic void xpathtest1() throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File("src/day2/domx/car.xml"));String xpath = "//单价";List<Element> elementList = document.selectNodes(xpath);System.out.println("第二辆汽车的单价是:" + elementList.get(1).getText());}@Testpublic void xpathtest2() throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File("src/day2/domx/car.xml"));String xpath = "//单价";Element element = (Element) document.selectSingleNode(xpath);System.out.println("第一辆汽车的单价是:" + element.getText());}@Testpublic void login() throws Exception {// 读取用户在键盘的输入信息Scanner scanner = new Scanner(System.in);System.out.println("用户名:");String username = scanner.nextLine();System.out.print("密码:");String password = scanner.nextLine();// System.out.println(username+":"+password);//解析XML文件,并查询指定的元素SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File("src/day2/domx/users.xml"));String xpath = "//user[@username='"+username+"' and @password='"+password+"']" ;Element element =   (Element) document.selectSingleNode(xpath);if(element != null){System.out.println("登陆成功");}else{System.out.println("登陆失败");}}}

user.xml

<?xml version="1.0" encoding="UTF-8"?>
<root><user id = "id001" username ="liwen" password="123456"></user><user id = "id002" username ="python" password="23456"></user>
</root>

结果:
用户名:
liwen
密码:123456
登陆成功

转载于:https://blog.51cto.com/357712148/2103954

java-xpath学习相关推荐

  1. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  2. Java XPath

    Java 语言的 XPath API 从 Java 程序中查询 XML 级别: 中级 Elliotte Harold (elharo@metalab.unc.edu), 副教授, Polytechni ...

  3. Java爬爬学习之WebMagic

    Java爬爬学习之WebMagic WebMagic介绍 架构介绍 WebMagic的四个组件 用于数据流转的对象 案例 引入依赖 加入配置文件 相关资料 WebMagic功能 实现PageProce ...

  4. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  5. java web学习项目20套源码完整版

    java web学习项目20套源码完整版 自己收集的各行各业的都有,这一套源码吃遍所有作业项目! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动化 ...

  6. 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图

    初级java开发学习路线 So you have started your journey into the world of web development. But what do you lea ...

  7. Java培训学习步骤有哪些

    最近几年,有很多学习java技术的同学都有过半途而废的想法,认为java零基础是很难学会的,其实出现这样的问题,最主要的原因就是学习方法有问题,下面小编整理的Java培训学习步骤,希望能够帮助大家更有 ...

  8. Java入门学习注意事项有哪些?

    想要学好java技术,做好学习规划路线和注意事项是非常重要的,尤其是零基础学员,Java涉及到的知识点非常多,我们需要制定合理的Java学习路线图,这样会事半功倍,下面小编和大家总结一下Java入门学 ...

  9. java培训学习阶段步骤讲解

    目前的培训机构行业比较热门的IT技术就是java技术,java技术在近几年广受关注,java所涉及的技术知识也比较广泛,下面小编就为大家详细的介绍一下java培训学习多有哪几个阶段? java培训学习 ...

  10. Java多线程学习处理高并发问题

    在程序的应用程序中,用户或请求的数量达到一定数量,并且无法避免并发请求.由于对接口的每次调用都必须在返回时终止,因此,如果接口的业务相对复杂,则可能会有多个用户.调用接口时,该用户将冻结. 以下内容将 ...

最新文章

  1. 明白了最基本的压缩原理
  2. MySQL5.7 - 基于GTID复制模式搭建主从复制
  3. map使用不存在的下标
  4. 如何让excel表格排头一直都在_Excel表格技巧—如何计算矩阵相乘
  5. OpenGL raytracer光线追踪的实例
  6. View.onMeasured的默认实现 (onMeasure必须调setMeasuredDimension)
  7. cors跨域_跨域,不止CORS
  8. python中如何调用或修改元组中的元素_python 元组的使用方法
  9. QT [005] 数据库设计 - 一个被忽略的数据库show类 - ConnectionWidget Class
  10. 2018-06-29博客
  11. AD的备份与标准还原:深入浅出Active Directory系列(四)
  12. python装饰器详解-如何更通俗地讲解Python的装饰器?
  13. golang http client 使用gzip_Grpc介绍 — Go-Service To PHP-Client
  14. 探索科学的奥秘之门Science,Cell, Nature
  15. iOS:childViewController和view的声明周期及其原理
  16. php1108脱机使用,电脑打印机脱机怎么重新连接
  17. 浅谈地下污水处理厂电气特点和能效管理系统的实际应用
  18. PMP第十章:项目沟通管理
  19. Twaver-HTML5基础学习(3)基本数据元素(Data)其他功能函数以及组Group
  20. 树莓派4B(bullseye),傻瓜式配置镜像源和QT,cmake等环境

热门文章

  1. 开源:Angularjs示例--Sonar中项目使用语言分布图(CoffeeScript版)
  2. 常量 - PHP手册笔记
  3. JavaScript面向对象与传统面向对象的一点区别
  4. vi编辑器中的各种(整行,多行,一个单词)复制
  5. 为tomcat6批量生成安全证书
  6. 【Shell脚本】逐行处理文本文件
  7. spring in action 4 线路图
  8. 几种filter的比较
  9. SyntaxHighlighter -- 代码高亮插件
  10. 资源管理器方法访问FTP服务