为了账号安全,请及时绑定邮箱和手机立即绑定

java-xpath学习

标签:
Java

/**

  • 使用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 {    @Test    public 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("=================");        }    }    @Test    public 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());    }    @Test    public 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());    }    @Test    public 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
登陆成功

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消