浅谈Xpath

来源:互联网 发布:7723java游戏 编辑:程序博客网 时间:2024/05/16 15:51

1.Xpath简介

Xpath即XML Path Language, XPath是一门在XML文档中查找信息的语言。利用XPath可以对XML文档进行元素和属性的遍历。

2.包的导入

(1)导入dom4j.jar包,并build path

(2)导入dom4j/lib 中的 jaxen.jar包,并build path

3.常用语法

/  开始,表示到一个元素的绝对路径(必须从根元素开始)
// 开始,表示选择文档中所有满足双斜线后规则的元素(无论层级关系)
[
 ] 里的表达式可以进一步的指定元素
@  指定属性
|  多个路径之间使用

4.Demo

下面的代码直接读取了price元素(car.xml)

//使用xpath技术取得xml文件中任意级别下的内容

SAXReader reader = new SAXReader();Document document = reader.read(new File("src/web/java/xml/xpath/car.xml"));String xpath = "//price";Element element = (Element) document.selectSingleNode(xpath);System.out.println("第一辆汽车的单价为:" + element.getText());

 

4.Demo2

使用Xpath,模拟用户登录

有如下user.xml文档,解析其中的用户数据,在控制台模拟登录过程

<?xml version="1.0" encoding="UTF-8"?><root><user id="u01" username="well" pwd="1234" /><user id="u02" username="admin" pwd="1234" /></root>

 

编写测试代码如下:

package web.java.xml.xpath;import java.io.File;import java.util.Scanner;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Demo2 {public static void main(String[] args) throws Exception {//利用扫描流读取用户输入的数据Scanner scanner = new Scanner(System.in);System.out.print("用户名:");String username = scanner.nextLine();System.out.print("密码:");String pwd = scanner.nextLine();//解析XML文件,并查询指定的元素File file = new File("src/web/java/xml/xpath/user.xml");SAXReader saxReader = new SAXReader();Document doc = saxReader.read(file);String xpath="//user[@username='"+username+"' and @pwd='"+pwd+"']";Element element = (Element) doc.selectSingleNode(xpath);if(element != null){System.out.println("Login Success!");}else{System.out.println("Login Failed!");}}}



 

原创粉丝点击