全国咨询/投诉热线: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

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额