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