标签:选中 部分 查找 开始 mil bsp 多个 筛选条件 元素
举个栗子
--------------------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<store1>
<book> <title lang="eng">Harry Potter1</title> <price>10</price> </book> </store1>
<shool>
<store1>
<book>
<title></title>
<title id="2"></title>
<title lang="eng">
Harry Potter2
</title>
<title lang="cn">哈利波特2</title>
<price>20</price>
</book> </store1>
</school>
<book> <title lang="eng">Harry Potter3</title> <price>30</price> </book>
<book> <title lang="eng">Harry Potter4</title> <price>40</price> </book>
</bookstore>
-------------------------------------------------------------------------------------------
定义:
节点、属性、内容之后的关系,例如:
<title lang="cn">哈利波特2</title>
a.title是节点(元素);
b.lang是titile节点的属性;
c."cn"是lang的属性值;
d.“哈利波特2”是title节点的内容;
综上:一个节点包含了属性和内容两部分,属性和内容可以同时为空。
1、单斜线“/”:如果以“/”开始,那么该路径表示到一个节点的绝对路径,从根节点开始选取。 如:
选中bookstore根节点: /bookstore
选中bookstore下的book子节点: /bookstore/book
选中store1下的book子节点: /bookstore/store1/book
2、双斜线“//”:如果以“//”开始,表示选中文档中所有满足“//”之后规则的节点(无论层级关系)。如:
选中所有book子节点(包括bookstore,store1和school/store1下的book节点): //book
选中所有store1下的book子节点(包括store1和school/store1下的book节点): //store1/book
3、星号“*”:表示选择所有由“*”之前的路径所定位的所有节点。如:
选中bookstore下所有子节点:/bookstore/*
选中文档中所有节点: //*
4、@:使用前缀@来指定节点的属性。如:
选中所有取名为lang的属性://@lang
5、方括号"[]":进一步限定节点,用来查找某个特定的节点或者包含某个指定的值的节点。如:
选中storebook下第二个book节点: /storebook/book[2] 或者 /storebook/book[last()]
选中storebook下前两个book节点: /storebook/book[position()<3]
选中有id属性的title节点://title[@id]
选中属性不为空的title节点: //title[@*]
选中属性为空的title节点: //title[not(@*)]
6、属性值作为节点的筛选条件。如:
选中属性值:id为2的title节点://title[@id=‘2‘]
选中属性值:lang为cn的title节点: //title[@lang=‘cn‘]
7、分隔符“|”:将多个路径合并在一起(可以合并的路径数目没有限制)。如:
选择所有的title节点和price节点://title|//price
参考文献:http://www.w3school.com.cn/xpath/xpath_syntax.asp
标签:选中 部分 查找 开始 mil bsp 多个 筛选条件 元素
原文地址:http://www.cnblogs.com/turbolxq/p/7801895.html