当前位置:网站首页 > Java基础 > 正文

java语法基础75



1、xpth技术

1.1、xpath的作用

    主要用于快速获取所需的节点对象。

1.2、在dom4j中如何使用xpath技术

2、xpath语法          XPath在线文档

    /    绝对路径    表示从xml的跟位置开始或者子元素(一个层次结构)
    // 相对路径    表示不分任何层次结构的选择元素.
*      通配符    表示匹配所有元素
    [ ]    条件    表示选择什么条件下的元素
    @    属性    表示属性节点
    and 关系    表示条件与关系(等价于&&)
    text 文本    表示选择文本内容

3、实例

例1:

 1 package com.shore.xpath;  2  3 import java.io.File;  4 import java.io.FileOutputStream;  5  6 import org.dom4j.Document;  7 import org.dom4j.DocumentException;  8 import org.dom4j.Element;  9 import org.dom4j.io.OutputFormat; 10 import org.dom4j.io.SAXReader; 11 import org.dom4j.io.XMLWriter; 12 13 public class Demo1 { 14 public static void main(String[] args) throws Exception { 15 /* 16  * 需求:删除id值为001的学生标签 17  * */ 18 Document doc=new SAXReader().read(new File("https://www.cnblogs.com/dshore123/p/src/contact.xml")); 19 //查询id为2的学生标签 20 //使用xpath技术 21 Element stuEle=(Element)doc.selectSingleNode("https://contact[@id='001']"); 22 stuEle.detach();//删除 23 24 //创建写出通道对象 25 FileOutputStream out=new FileOutputStream("F:/contact.xml"); 26 OutputFormat format=OutputFormat.createPrettyPrint();//设置写xml出文件的格式 27 format.setEncoding("utf-8"); 28 //写出xml文件到F盘下 29 XMLWriter write=new XMLWriter(out,format); 30 //写出 31  write.write(doc); 32  write.close(); 33  } 34 }

例2:

 1 package com.shore.xpath;  2  3 import java.io.File;  4 import java.util.List;  5  6 import org.dom4j.Document;  7 import org.dom4j.Node;  8 import org.dom4j.io.SAXReader;  9 10 /* 11  * 学习xPath语法 12  * */ 13 public class Demo2 { 14 public static void main(String[] args) throws Exception { 15 Document doc=new SAXReader().read(new File("https://www.cnblogs.com/dshore123/p/src/contact.xml")); 16 String xpath=""; 17 /* 18  * 1./ 绝对路径,从xml的跟位置开始或子元素开始(一个层次) 19  * */ 20 xpath="/contactList"; 21 xpath="/contactList/contact"; 22 /* 23  * 2.// 相对定位,表示部分任何层次结构的选择元素 24  * */ 25 xpath="https://contact[1]/name"; 26 xpath="https://name"; 27 /* 28  * 3.* 通配符,表示匹配所有元素 29  * */ 30 xpath="/contactList/*"; 31 xpath="/contactList//*"; 32 /* 33  * 4.[] 条件,表示选择什么条件下的元素 34  * */ 35 //带有id属性的contact标签 36 xpath="https://contact[@id]"; 37 xpath="https://contact[2]"; 38 xpath="https://contact[last()]"; 39 /* 40  * @ 属性; and 表示条件与关系(等价于&&) 41  * */ 42 xpath="https://@id"; 43 xpath="https://contact[not(@id)]"; 44 xpath="https://contact[@id='001' and @name='张三']"; 45 /* 46  * text() 表示选择文本内容 47  * */ 48 //选择name标签下的文本内容 49 xpath="https://name//text()"; 50 List<Node> list=doc.selectNodes(xpath); 51 for (Node node : list) { 52  System.out.println(node.getText()); java语法基础7553  } 54  } 55 }

contact.xml文档(注:上面的两个实例都用到此文件)

 1 <contactList>  2 <contact id="001" name="zhangsan">  3 <name>张三</name>  4 <age>18</age>  5 <phone></phone>  6 <email>@.com</email>  7 <></>  8 <abc>  9 <a><b></b></a> 10 </abc> 11 </contact> 12 <contact name="zhangsan"> 13 <name>张三</name> 14 <age>18</age> 15 <phone></phone> 16 <email>@.com</email> 17 <></> 18 </contact> 19 <contact id="002"> 20 <name>李四</name> 21 <age>20</age> 22 <phone></phone> 23 <email>12580@.com</email> 24 <></> 25 </contact> 26 </contactList>

附录

 1 package com.shore.login;  2  3 import java.io.BufferedReader;  4 import java.io.File;  5 import java.io.IOException;  6 import java.io.InputStreamReader;  7  8 import org.dom4j.Document;  9 import org.dom4j.Element; 10 import org.dom4j.io.SAXReader; 11 12 //模拟登陆 13 public class Demo1 { 14 public static void main(String[] args) throws Exception { 15 //1获取用户输入的用户名密码 16 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 17 System.out.println("请输入用户名:"); 18 String name=br.readLine(); 19 20 System.out.println("请输入密码:"); 21 String password=br.readLine(); 22 23 //2.到数据库中查询是否有对应用户 24 //对应的用户:在user.xml文件中找到一个 25 Document doc=new SAXReader().read(new File("https://www.cnblogs.com/dshore123/p/src/user.xml")); 26 Element userElement=(Element)doc.selectSingleNode("https://user[@name='"+name+"' and @password='"+password+"']"); 27 28 if(userElement !=null){ 29 //登录成功 30 System.out.println("登录成功!"); 31 32 }else{ 33 //登录失败 34 System.out.println("登录失败,账号或密码错误!"); 35  } 36  } 37 }

user.xml(作用:该文件中 存在的账号和密码,并且一一对应,才能登陆成功)

1 <?xml version="1.0" encoding="utf-8"?> 2 <users> 3 <user id="001" name="zhangsan" password=""></user> 4 <user id="002" name="wangwu" password=""></user> 5 <user id="003" name="lisi" password=""></user> 6 </users>

结果图

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9579998.html

  • 上一篇: java基础书籍ISBN码
  • 下一篇: java基础接口类
  • 版权声明


    相关文章:

  • java基础书籍ISBN码2024-10-25 08:10:00
  • java1-3基础入门2024-10-25 08:10:00
  • 小学基础能学java吗2024-10-25 08:10:00
  • 程序设计基础c语言和java2024-10-25 08:10:00
  • java基础演讲讲什么简单易懂2024-10-25 08:10:00
  • java基础接口类2024-10-25 08:10:00
  • java 基础 知乎2024-10-25 08:10:00
  • java零基础班和和就业班2024-10-25 08:10:00
  • java0基础动力节点2024-10-25 08:10:00
  • 游戏编程基础学的是java吗2024-10-25 08:10:00