XPath语法:

表达式

描述

nodename

选取此节点的所有子节点

/

从根节点选取

//

选择任意位置的某个节点

.

选取当前节点

..

选取当前节点的父节点

@

选取属性

 

 

 

 

<?xml version="1.0"encoding="IS0-8859-1"?>

<classroom>

       <student>

              <id>1001</id>

              <name lang="en">marry</name>

              <age>20</age>

              <country>China</country>

       </student>

       <student>

              <id>1002</id>

              <name lang="en">jack</name>

              <age>25</age>

              <country>USA</country>

       </student>

</classroom>

 

 

 

选取classroom元素的所有子节点

classroom

选取根元素classroom

/classroom

选取classroom的子元素的所有student元素

classroom/student

选取所有student元素,无论在文档中什么位置

//student

选取属于classroom元素的后代的所有student元素,无论在classroom之下的什么位置。

classroom//student

选取名为lang的所有属性

//@lang

 

 

选取classroom的子元素的第一个student元素

/classroom/student[1]

选取classroom的子元素最后一个student元素

/classroom/student[last()]

选取classroom的子元素的倒数第二个student元素

/classroom/student[last()-1]

选取最前面的两个属于classroom元素的子元素的student元素

/classroom/student[position<3]

选取所有拥有属性名为lang属性的name元素

//name[@lang]

选取所有拥有属性lang且属性名是en的name元素

//name[@lang=’en’]

选取classroom元素的所有student元素,且其中的age元素的值大于20

/classroom/student[age>20]

选取classroom元素的所有student元素的所有name元素,且其中的age元素的值大于20

/classroom/student[age>20]/name

 

 

选取classroom元素的所有子元素

/classroom/*

选取文档中的所有元素

//*

选取所有带有属性的name元素

//name[@*]

选取student元素的所有name元素和age元素

//student/name | //student/age

选取属于classroom元素的student元素的所有name元素以及文档中所有age 元素

/classroom/student/name | //age