XPaths_tutorial:List of XPaths [XPath 1.0 Tutorial @ Zvon.org]
1、基本的 XPath 语法类似于文件系统寻址。如果路径以斜杠 / 开头,那么它表示所需元素的绝对路径。
2、//xxx, 匹配符合xxx的所有元素
3、* 匹配满足条件的所有内容
4、[] 类似列表索引操作
5、@指定属性
6、//BBB[normalize-space(@name)='bbb')] ,去除value前、后空格,找到BBB下,name 属性为 'bbb' 的元素
7、coun() 筛选出符合条件个数的元素,例如//*[count(*)=2],筛选当前页面下,包含连个子目录的所有元素
8、name function 返回符合条件的元素名 ,例如: //*[contains(name(),'C')] ,返回检索到的所有,元素名包含"C"的结果
9、string-length 返回符合长度条件的元素,例如: //*[string-length(name()) < 3], 返回元素名长度小于 3 的结果
10、 | 与或的概念类似,并列多个筛选条件,/111 | //222,筛选完111,再筛选222
11、/child:: 类似默认可省略的根目录,/child::AAA 等同于 /AAA
12.、descendant:: 个人理解类似一个 /,例如:/AAA/BBB/descendant::* 等同于 /AAA/BBB//*
13、/parant::xxx 返回满足xxx条件的父元素,例如://DDD/parent::* 即为找到所有DDD的父元素
14、/ancestor:: 找到符合条件的祖先元素(类似parent的扩展版)
15、/following-sibling:: ,找到符合条件的后续兄弟元素
16、/preceding-sibling:: ,符合条件的前序兄弟元素
17、/following:: 返回满足条件的后续所有元素,例如: //ZZZ/following::* 返回所有找到的ZZZ后,所有元素
18、/preceding:: 返回满足条件的前序所有元素,例如: /AAA/XXX/preceding::* 返回/AAA下/XXX前的所有元素
19、/descendant-or-self:: 找到符合条件的元素及直系后裔