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);

java中的xpath,读取xml文档。的更多相关文章

  1. 【XML】利用Dom4j读取XML文档以及写入XML文档

    Dom4j简介 dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能 ...

  2. java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

    一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...

  3. PHP中利用DOM和simplxml读取xml文档

    实例  用DOM获取下列xml文档中所有金庸小说的书名,该xml文档所在位置为 ./books.xml: <?xml version="1.0" encoding=" ...

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

    xpath是一门在xml文档中查找信息的语言.xpath用于在XML文档中通过元素和属性进行导航.它的返回值可能是节点,节点集合,文本,以及节点和文本的混合等.在学习本文档之前应该对XML的节点,元素 ...

  5. 【JAVA与DOM4J实现对XML文档的CRUD操作】

    一.简介 1.网上下载DOM4J 1.6.1压缩包,解压开之后,发现几个目录和一个jar文件,jar文件是必须的文件其它目录: docs目录:帮助文档的目录,单击index.html: Quick s ...

  6. 使用DOM4J解析XML文档,以及使用XPath提取XML文档

    使用DOM4J解析XML文档 需要首先下载DOM4J工具包.这是个第三方工具包 在使用DOM4J解析的时候需要导入 DOM4J的JAR包 下载DOM4J工具包->在MyEclipse中新建lib ...

  7. 2.Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)-

    转自:https://blog.csdn.net/a214919447/article/details/55260411 SOAP(Simple Object Access Protocol,简单对象 ...

  8. C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例

    XSL即可扩展的样式表文件. 可以格式化xml的显示,也可以将xml转换成需要的另一种格式. 学习XSL必须熟悉XPath.XSL和XPath一样简单强大,容易学习. 1. XSL既然可以格式化xml ...

  9. Java获取XML节点总结之读取XML文档节点

    dom4j是Java的XML API,用来读写XML文件的.目前有很多场景中使用dom4j来读写xml的.要使用dom4j开发,需要下载导入dom4j相应的jar文件.官网下载:http://www. ...

随机推荐

  1. setInterval && setTimeout || 定时器

    来自w3school的解释 定时器setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterva ...

  2. IE 与 FireFox 的 event 详解 (转)

    原文链接 FF的FIREBUG,不仅能测试JS还能检查CSS错误,是一般常用的. 但它主要检查FF方面的错误,对IE就无能为力了. 要测试IE,就用ieTester,它可以测试IE几乎所有版本(1.0 ...

  3. Bootstrap 静态分页 和 jquery_pagination插件 动态分页

    第一种Bootstrap 实例 - 默认的分页 <!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - ...

  4. Stars(BIT树状数组)

    Stars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  5. phalcon

    phalcon 代码内在sql 内用Ad去取数据库内的ad表. osx上没问题, centos报找不到表. 应该是centos上mysql区分大小写,可改写mysql的配置.

  6. Win32 API中的user32.dll中的ShowWindow方法参数整理

    在使用ShowWindow方法来设置窗体的状态时,由于不知道参数值,用起来非常容易混乱,所以整理了以下其参数的枚举值,方便以后的的使用.   public class User32API { #reg ...

  7. js加载优化-二

    http://www.cnblogs.com/radom/archive/2011/04/26/2028886.html ontrolJS 主要为了是解决网页加载中Js文件的性能问题,ControlJ ...

  8. poj 1036 Gangsters

    http://poj.org/problem?id=1036 题意:N个土匪,伸缩门的范围是K, 时间T, 伸缩门在[0, k]范围内变动,每个单位时间可以不变伸长或者缩短一个单位.给出每个最烦到达的 ...

  9. ZOJ 1008 Gnome Tetravex(DFS)

    Gnome Tetravex Time Limit: 10 Seconds      Memory Limit: 32768 KB Hart is engaged in playing an inte ...

  10. SQL Server 中使用参数化Top语句

    在T-Sql中,一般top数据不确定的情况下,都是拼sql,这样无论是效率还是可读性都不好.应该使用下面参数化Top方式:declare @TopCount int set @TopCount = 1 ...