XPATH解析xml文件

  • 一、什么是XPATH
  • 访问路径有
  • 查找本地xml文件
    • 2.解析网上xml文件

一、什么是XPATH

是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

访问路径有

路径表达式:
1. /   :  从根节点开始查找
2.  // :  重发起查找的的节点位置查找后节点 (使用最多)
3.  .  :  查找当前节点
4.  .. :  选择属性
5.  @  :  属性使用方法:[@ 属性名='值'][@ 属性名>'值'][@ 属性名<'值'][@ 属性名!='值']

查找本地xml文件

将已写好xml文件保存在硬盘的一个位置,我将它保存在E盘

package kkb.class_code.Leve4_核心类库.Demo8XML与JSON.XPATH解析;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;public class Demo1_XPATH解析本地xml文件 {public static void main(String[] args) throws IOException, DocumentException {//1、获取输入流-xml文件FileInputStream fis = new FileInputStream("e://Demo1.xml");//2、创建xml读取对象SAXReader sr = new SAXReader();//3、读取并得到文档对象Document doc = sr.read(fis);//4、通过文档获取根元素,selectNodesca查询多个List<Node> names = doc.selectNodes("//name");for(int i=0;i<names.size();i++){System.out.println(names.get(i).getName());System.out.println(names.get(i).getText());}System.out.println("----------------------");//5、selectSingleNode单查询Node n = doc.selectSingleNode("//book[@id='1001']//name");System.out.println(n.getName()+":"+n.getText());//关闭文件流fis.close();}
}

运行结果:

name
金苹果
name
银苹果
----------------------
name:金苹果Process finished with exit code 0

2.解析网上xml文件

接下来我们来解析一个可以查询手机号码相关信息的网址。
地址为(http://apis.juhe.cn/mobile/get?%20phone=16670002013&dtype=xml&key=9f3923e8f87f1ea50ed4ec8c39cc9253)

然后将解析这个网站将手机号码里面的内容解析出来。

package kkb.class_code.Leve4_核心类库.Demo8XML与JSON.XPATH解析;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;public class Demo2_XPATH解析网络xml文件 {public static void main(String[] args) throws IOException, DocumentException {//1、获取到xml资源的输入流String phone = "16670002013";URL url = new URL("http://apis.juhe.cn/mobile/get?%20phone=" + phone + "&dtype=xml&key=9f3923e8f87f1ea50ed4ec8c39cc9253");//打开链接URLConnection conn = url.openConnection();//拿下网址的输入流InputStream is = conn.getInputStream();//2、创建一盒XML读取对象SAXReader sr = new SAXReader();//3、通过读取对象 读取xml数据吗,并返回文档对象Document doc = sr.read(is);//4.XPATH寻找地址Node node = doc.selectSingleNode("//company");System.out.println("号码附属公司:" + node.getText());}}

结果:

号码附属公司:联通

在上篇笔者写过通过获取元素解析xml文件,两者的区别不大,查询并没有说有提高,但是代码的操作会简单一点。


IDEA中如何进行XML解析

IDEA如何进行debug调试

一个非常方便的测试方法——JUnit单元测试(IDEA)


XPATH解析xml文件相关推荐

  1. java xpath 解析xml_使用XPATH解析XML文件

    使用XPATH解析XML文件 import java.util.Iterator; import java.util.List; import org.dom4j.Document; import o ...

  2. XPath解析xml文件、html文件

    直接贴代码 DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); //建立docum ...

  3. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  4. java xml中的冒号_Java jdom解析xml文件带冒号的属性

    Java jdom解析xml文件带冒号的属性 如果xml文件解析带了冒号的属性,一般都是要特别处理,这里是命名空间,N年前遇到过一次忘记记录,后来也忘了,这次再记录下. 解决了,记录下,分享给大家,百 ...

  5. [Linux C]利用libxml2解析xml文件

    为了解析xml,可以使用Linux下默认安装的libxml2. /*a.c功能:利用libxml2解析xml文件 */#include <stdio.h> #include <std ...

  6. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

  7. DocumentHelper解析xml文件

    DocumentHelper解析xml文件解析xml格式的字符串,需要先引入以下依赖 <dependency><groupId>org.dom4j</groupId> ...

  8. 一个如何解析XML文件? [关闭]

    已关闭 . 这个问题需要更加 集中 . 它当前不接受答案. 想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题. 去年关闭. 这篇文章是 社区维基 . 编辑现有答案以改善此职位. 它当前 ...

  9. C#解析xml文件获取中国的省市县地区名称和zipcode编号

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 C#解析xml文件获取中国的省市县名称获zipcode编号.需要提交加载xml文件.获取市级城市时,需要提供省级名称.获取县级城市市需要提供省级和市级 ...

最新文章

  1. 深度盘点Python11个主流框架:Pandas、Django、Matplotlib、Numpy、PyTorch......
  2. 微服务治理实践 | 金丝雀发布
  3. 如何在 C# 中使用 Buffer
  4. 读写Excel 用 xlsxwriter,openpyxl 更灵活
  5. java 复选框 背景色_将多选框选中时打勾的颜色
  6. Android开发:Handler Runnable和Thread之间的区别和联系 应用--------------------看完本篇,从此一览无余!...
  7. 【LOJ#123】最小生成树,Kruskal模板
  8. arduino学习笔记(四)——伺服电机(舵机)
  9. java mail(转贴)//从哪里找到忘记了,不过绝对不是自己写的
  10. 百度文库文章提取器(下)
  11. win764位安装vs2010sp1补丁卡在kb983509解决办法低于40分钟
  12. 关于nvme固态硬盘安装系统的一点经验
  13. Linux指令部分(一)
  14. Rhino学习教程——1.2
  15. linux使用命令查看MAC地址
  16. 10000marker_为什么跑全基因组dna时为什么用10000bp的marker
  17. 【微信小程序】——Mobx全局数据共享和分包
  18. 5G NR LDPC码(2)—— 5G NR中的LDPC码标准化内容
  19. 香港机房BGP线路有什么用
  20. 天人感应和小概率事件

热门文章

  1. HTML5期末大作业:宠物网页设计——宠物之家17页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
  2. 计算机用户变量path的初值,Windows10系统环境变量默认值(PATH变量原始值)
  3. python3: format函数
  4. 朗科实习期间心得笔记(六)
  5. 如何访问他人电脑上的共享文件夹
  6. 计算机科学有什么凄美故事,直男看到后都会心疼的签名 2021很让人伤心的难过签名...
  7. echarts的legend设置width不生效
  8. 使用“谷歌移动设备易用性”工具优化移动网站
  9. 如何去除Landsat影像中的水体呢?
  10. 恢复出厂设置后, 时间没有恢复