实例一:基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径
1、选择根元素
![f104cc77e0e4fbaffb40df11e12d2b35.png](https://i-blog.csdnimg.cn/blog_migrate/e837f7c0f3c2dee4ddf9dc8fe7460bef.jpeg)
2、选择AAA的子元素CCC的子元素
![8b7b37fa6600370672bb753964a85cac.png](https://i-blog.csdnimg.cn/blog_migrate/2554c1ac8fe39439900eca1fef6d09e4.jpeg)
3、选择AAA的子元素DDD的所有子元素
![74b9f0ed5e3aa4a42c6875dae886434c.png](https://i-blog.csdnimg.cn/blog_migrate/5311ee09f4a36962e11d6d2325e79351.jpeg)
实例二:如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系)
1、选择所有BBB元素
![59873b437dc041281a5f7bbc24e21081.png](https://i-blog.csdnimg.cn/blog_migrate/6af720ec93e2898351195886a5575fec.jpeg)
2、选择所有父元素是DDD的BBB元素
![1891e6b9ec415301090d5a6da6e8ca64.png](https://i-blog.csdnimg.cn/blog_migrate/199c20d69fd01c97448207785dcd62fe.jpeg)
案例三:星号 * 表示选择所有由星号之前的路径所定位的元素 :
1、选择所有路径依附于/AAA/CCC/DDD的元素
![81a900c355b965204d0dba822b90a96a.png](https://i-blog.csdnimg.cn/blog_migrate/6ce17748f54e33ff141c5b38bd428fef.jpeg)
2、选择所有的3个祖先元素的BBB元素
![1abab0ed602dee1c847939379bff32c8.png](https://i-blog.csdnimg.cn/blog_migrate/b691dc821aa274137550a2d536d785ca.jpeg)
3、选择所有元素
![c634eab64e161fe6588896f4c60dcc14.png](https://i-blog.csdnimg.cn/blog_migrate/dcfb6bc675245ca7655bfe1a89edc6a6.jpeg)
案例4:方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素.
![b24ad1afb2890da809d3397f81f915cd.png](https://i-blog.csdnimg.cn/blog_migrate/c343675effc1a54eb872ec49b3979138.jpeg)
案例五:
1、选择所有的id属性
![39d14ec71aec70001737c755dcf91eef.png](https://i-blog.csdnimg.cn/blog_migrate/9e04856da1edbb6ddc01e9e25d1d3be8.jpeg)
2、
![41195d66c743740328fa77519e210332.png](https://i-blog.csdnimg.cn/blog_migrate/c4facd90fe8ebe5d951ea19ab8be5b97.jpeg)
3、
![9751b05e48ec3cc4de993e22457a1b66.png](https://i-blog.csdnimg.cn/blog_migrate/5c99189bab9e0707c827d30a8b296ada.jpeg)
案例六:属性的值可以被用来作为选择的准则, normalize-space函数删除了前部和尾部的空格, 并且把连续的空格串替换为一个单一的空格
![1f1f87a8c455a32e6c1adf5f371c1cf4.png](https://i-blog.csdnimg.cn/blog_migrate/5a1e0f599593dabd0b169d9201730fc6.jpeg)
案例七:count()函数可以计数所选元素的个数
1、
![bab4283d8e5ac75788bd41597a5f0b84.png](https://i-blog.csdnimg.cn/blog_migrate/ff6b532efd46ab6a830ae8285a26a515.jpeg)
2、
![5117d25a82445bdbeb4d7451fffbfe73.png](https://i-blog.csdnimg.cn/blog_migrate/272bf595651b04b60d45e60f230f534a.jpeg)
3、
![5237456c0e168d77101a1af3188c43a0.png](https://i-blog.csdnimg.cn/blog_migrate/793f1764129ffbafee5e334c2e332ce5.jpeg)
案例八:name()函数返回元素的名称, start-with()函数在该函数的第一个参数字符串是以第二个参数字符开始的情况返回true, contains()函数当其第一个字符串参数包含有第二个字符串参数时返回true.
1、
![a3e924a19765625349727e1783a0ead1.png](https://i-blog.csdnimg.cn/blog_migrate/53d4ea4424a10e154941536291f8b909.jpeg)
2、
![76493157e020b78f911353f614cd1cf8.png](https://i-blog.csdnimg.cn/blog_migrate/5073a00b349de0146ba065a67652c33f.jpeg)
3、
![452353fd8ca8f8a3c921468d80f8d96f.png](https://i-blog.csdnimg.cn/blog_migrate/6eeec4ccea6848ac536c71d851c692db.jpeg)
案例九:string-length函数返回字符串的字符数,你应该用<替代<, 用>代替>
![ed12d30f70091c0d861b94eed2e7d10c.png](https://i-blog.csdnimg.cn/blog_migrate/2a9a0b30d500e5e1eaa42415d6b6f849.jpeg)
案例十:多个路径可以用分隔符 | 合并在一起
![b5d8aabbfca464e609365578cb2b21bf.png](https://i-blog.csdnimg.cn/blog_migrate/8f2ea1bf25bf2b7906eb719e89f4e31d.jpeg)
案例十一:div运算符做浮点除法运算, mod运算符做求余运算, floor函数返回不大于参数的最大整数(趋近于正无穷), ceiling返回不小于参数的最小整数(趋近于负无穷)
1、
![396b793f0393e8eb41846d90dd8235c7.png](https://i-blog.csdnimg.cn/blog_migrate/e153266477e6d643cd0bcb3fa7f8a7c1.jpeg)
2、
![9da12f533c4caa93e7e1923aab240379.png](https://i-blog.csdnimg.cn/blog_migrate/cae918222974482ff1a7db815c18c345.jpeg)
3、
![c374a71ee0ccbc7e63ffcaaf69d760fe.png](https://i-blog.csdnimg.cn/blog_migrate/b0e1e9227185249855501ae0660c343a.jpeg)
XPATH的案例远远不止这些,详情请参考XPATH的API文档,这里只是入门案例截图而已。
-----------------------------------百战卓越062天-------------------------------------