全国咨询热线:400-618-4000

Java培训之XPath知识点详解

更新时间:2016年06月27日16时29分 来源:传智播客java培训学院

1 什么是XPath
XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。
 

2 DOM4J对XPath的支持
在DOM4J中,Node接口中的三个方法最为常用: 
  • List selectNodes(String xpathExpression):在当前节点中查找满足XPath表达式的所有子节点;
  • Node selectSingleNode(String xpathExpression):在当前节点中查找满足XPath表达式的第一个子节点;
  • String valueOf(String xpathExpression):在当前节点中查找满足XPath表达式的第一个子节点的文本内容;
 

XPath语法

 
1 选择节点
  • / :表示文档;
  • /AAA:文档下的AAA节点;
  • /AAA/BBB:文档下的AAA节点下的BBB节点;
  • /*/BBB:文档下的任意节点下的BBB节点;
  • /AAA/*:文档下的AAA节点下的任意节点;
  • .:表示当前节点;
  • ./AAA:当前节点下的AAA节点;
  • ./AAA/*:当前节点下的AAA节点下的任意节点;
  • ..: 表示当前节点的父节点;
  • ../*:当前节点父节点下的所有节点,也就是当前节点的所有兄弟节点及自己本身;
  • //:表示从当前节点位置算起,不受位置限制选择;
  • //AAA:文档中所有AAA节点;
  • .//AAA:当前节点下所有AAA节点,包含当前节点子孙中的AAA节点;
  • @:选择属性节点;
  • //@number:文档中所有number属性;
  • //@*:文档中所有属性;
  • /AAA/BBB/@*:AAA下的BBB的所有属性;
 
2 多路径选择节点
  • |:把多个路径用“|”连接,即选择多个路径;
  • /AAA/BBB | /AAA/CCC/BBB:AAA下的BBB,以及AAA下的CCC下的BBB;
 
3 谓语
就是条件,需要使用中括号括起来。
  • //[@*]:所有有属性的节点,注意选择的不是属性,而是有属性的节点,谓语只是一个条件;
  • //AAA[@number]:所有有number属性的AAA节点;
  • /AAA/BBB[@number=’1001’]:AAA元素下的number属性为1001的BBB元素;
  • /AAA/BBB[@number!=’1001’]:AAA 元素下的包含number属性,但属性值不为1001的BBB元素;
 
4 多谓语
就是多个条件,使用or、and连接多个条件。
  • or:或者;
  • //[@number or @friend]:所有包含number或者friend属性的元素;
  • //[@number=’1001’ or @friend=’1001’]:所有number为1001或者friend为1001的元素;
  • and:并且;
  • //[@number or @friend]:所有包含number和friend属性的元素;
 
5 运算符
  • |:已经介绍过了;
  • +:加法运算符;
  • -:减法运算符;
  • *:乘法运算符;
  • div:除法运算符;
  • =:等于运算符,等同于Java中的“==”;
  • !=:不等于运算符;
  • >=:大于等于;
  • >:大于;
  • <=:小于毛球;
  • <:小于;
  • or:或者,已经介绍过了;
  • and:并且,已经介绍了;
  • mod:模运算符,等同于Java中的“%”。

本文版权归传智播客Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Java培训学院
首发:http://www.itcast.cn/javaee