1,入门

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、

介于XPointer与XSL间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。

2,了解

如果要定位xml文档中的某一节点,并获取相应的信息。那么可以通过遍历dom树的所有节点进行查找。这样做显然比较麻烦。

于是有了XPat语言来访问树的节点比较容易。

如:

<config>
.....<user><name>JIMI</name><gental>male</gental></user>
.....
</config>

下列的操作:

1,得到文档的节点。

2,枚举它的子元素。

3,定位user元素。

4,获取user元素的第一个元素,即name元素

5,获取name元素的第一元素,即name标签里的内容。(Text节点)

6,获取Text节点的数据。

XPath可以用来描述XML文档中的一组节点。如:

/gridbag/row

表示根元素gridbag的子元素中所有的row元素。可以用[]操作符来选择特定的元素。

/gridbag/row[1]

表示row所有元素的第一元素。

使用@操作符可以得到元素的属性。(<user id="1"></user>:其中的id就是user元素的属性)

/gridbag/row[1]/cell[1]/@author

上面的XPath描述了第一行第一个单元格的author元素。

XPath表达式:/gridbag/row/cell/@author

描述了作为根元素gridbag的子元素行元素中所有的单元格的author属性节点。

3,java中的XPath

java使用XPath对象来操作xml文档

XPathFactory xpfactory = XPathFactory.newInstance();
    XPath  path = xpfactory.newXPath();

String name = path.evaluate("/config/user/name",(Document)doc);//计算表达获取相应的name

还有以下的操作

Nodelist nodes = (Nodelist) path.evaluate("/gridbag/row",doc,XPathContants.NODESET);//返回的是一组节点。

Node node = (Node) path.evaluate("/gridbag/row[1]",doc,XPathContants.NODE);//返回一个节点。

int count = ((Number) path.evaluate("count(/gridbag/row)",doc,XPathContants.NUMBER)).intValue();//返回节点个数。

如果想要从某个节点,或者节点列计算得到一个节点可以通过:

reusult = path.evaluate(expression,node);来获取。

--------------------------------------下面是doc变量的创建过程。-------------

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     DocumentBuilder    builder = factory.newDocumentBuilder();

File f = new File();
Document    doc = builder.parse(f);

转载于:https://www.cnblogs.com/riasky/p/3509168.html

java中的xpath,读取xml文档。相关推荐

  1. JAVA中利用DOM解析XML文档

    JAVA中利用DOM解析XML文档 package org.sws.utils; import java.io.File;import java.io.IOException; import java ...

  2. Java为xml跟节点添加子节点_如何将xml节点作为第一个子节点插入Java中的另一个xml文档中?...

    小编典典 如果事实证明我只是为您做功课,我会感到非常恼火. package com.akonizo.examples; import java.io.ByteArrayInputStream; imp ...

  3. 在Java中使用xpath对xml解析

     个人博客地址:https://www.vastyun.com xpath是一门在xml文档中查找信息的语言.xpath用于在XML文档中通过元素和属性进行导航.它的返回值可能是节点,节点集合,文本, ...

  4. JavaEE之使用DOM4J和XPath对xml文档的添加,删除,查询操作

    程序运行结果如下图: XML文档如下: <?xml version="1.0" encoding="UTF-8"?><exam> < ...

  5. 读取XML文档解析信息

    dom4j是一个Java的XML API,用来读写XML文件.dom4j是一个非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.使用dom4j ...

  6. Qt 读取XML文档的简单示例

    目录名字 XML简介 Qt 操作XML文档一般方法 使用DOM读取XML文档 示例代码:读取XML文档 XML简介 XML(Extensible Markup Language,可扩展标记语言)是一种 ...

  7. 【Qt】DOM读取XML文档

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. XML文档示例 04. DOM读取XML文档内容 05. 预留 06. 附录 01. 概述 DOM(Document Ob ...

  8. [Qt教程] 第27篇 XML(一)使用DOM读取XML文档

    [Qt教程] 第27篇 XML(一)使用DOM读取XML文档 楼主  发表于 2013-5-21 21:14:28 | 查看: 1001| 回复: 14 使用DOM读取XML文档 版权声明 该文章原创 ...

  9. C#来创建和读取XML文档 [转]

    C#来创建和读取XML文档  [关键词]:XML 录入:小鱼之家 来源:http://fisher.xundain.com 时间:2005-3-3 23:41:54 点击:85次 扩展标记语言XML( ...

  10. java打开密码pdf,在Java中使用密码解密PDF文档

    在Java中使用密码解密PDF文档 文档加密是确保企业与其外部客户之间安全地传递信息的最常用方法之一.所有PDF文件都提供了加密功能,可确保任何试图拦截信息的人都可以在没有密码的情况下打开它,密码应在 ...

最新文章

  1. 我的一天:时间都去哪了?
  2. 谈谈中台架构之交易中台
  3. 汇总|计算机摄影学资源,涉及视频、书籍以及国内外著名实验室
  4. 企业实战之分布式锁方案一步步的演变历程!,Java数据库索引面试题
  5. 文本框换行_多行文本框的认识以及代码详解
  6. html5哪个输入字段必填,HTML5:如何使用“required”属性和“radio”输入字段
  7. 分布式认证需求-开放认证体系
  8. 自己动手写CPU(8)加载存储指令的实现
  9. java robot键值_Java:使用Robot类模拟键盘, 以Alt码方式输出汉字
  10. 【LeetCode】剑指 Offer 10- I. 斐波那契数列
  11. 译: 6. 任务调度(定时执行任务)
  12. BeanFactory和ApplicationContext的异同
  13. 中文文字校对软件,找我们,字根科技
  14. 博文视点卓越书单丨Python技术成长加油站
  15. 试简述smtp通信的三个阶段的过程_POP3_SMTP_IMAP初步介绍
  16. win10用户名与计算机名字一样,win10电脑账户名和其他信息怎么更改
  17. ie不能加载flash html,IE11无法显示flash?IE11无法播放视频的解决方法
  18. python 英语词汇_【我爱背单词】用Python提炼3000英语新闻高频词汇
  19. python eml解析_如何在python中读取eml文件?
  20. 设计模式——Interpreter解释器模式

热门文章

  1. 计量模型 | 固定效应与交互固定效应
  2. Java生成文本水印
  3. iPhone照片备份与恢复
  4. mongodb 什么比mysql快_MongoDB为什么比mysql效率高
  5. 软件供应链平台汇新云
  6. C语言获取数组和字符串长度
  7. 删除页眉页脚中横线的方法
  8. charles抓PC端的包
  9. 下周递交上市申请,腾讯持股的微医投资价值几何?
  10. JavaWeb项目间隔刷新出现412