/**
使用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 = "http://单价"; 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 = "http://单价"; 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 = "http://单价"; 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 = "http://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
登陆成功
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦