xpath回顾温习

作者: 草中人 | 来源:发表于2017-06-05 10:07 被阅读0次

1.绝对路径定位

以斜线 / 开头,/AAA/CCC/DDD;

2.相对路径 //

以双斜线 // 开头,  //BBB  无论层级关系,定位所有BBB元素;

//DDD/BBB 所有父元素下是DDD下的BBB元素;

3.相对路径 *

/AAA/CCC/DDD/*  选择所有/AAA/CCC/DDD/路径下的所有元素;

/*/*/*/BBB  选择所有有3个祖先元素的BBB元素;

4.相对路径 [ ]

方块号里的表达式可以进一步的指定元素,其中数字表示元素在选择集里的位置,而last()函数表示选择集里的最后一个元素。

/AAA/BBB[1]

/AAA/BBB[last()]

5.相对路径 @

  选择所有的id属性: //@id; 

选择有id属性的BBB元素: //BBB[@id]; 

选择有任意属性的BBB元素: //BBB[@*];

选择没有属性的BBB元素://BBB[not(@*)]

6.属性的值定位

属性的值可以被用来作为选择的准则,normalize-space函数删除了前后尾部空格,并且把连续的空格串替换为一个单一的空格

选择含有某属性且其值为‘b1’的BBB元素: //BBB[@id='b1']

选择含有属性name且其值(在用normalize-space函数去掉前后空格后)为'bbb'的BBB元素: //BBB[normalize-space(@name)='bbb']

注:有的属性值前或后都会人为的添加空格,易读性好

以下为函数介绍

7. count()函数可以计数所选元素的个数

选择含有N个BBB子元素的元素://*[count(BBB)=N]

选择含有2个子元素的元素://*[count(*)=2]

8.name(),start-with(m,n),contains(x,y)

选择所有名称为BBB的元素  //*[name()='BBB']等价于//BBB

start-with(m,n) 在该函数的m参数字符串是以n参数字符开始的情况返回true

选择所有名称以”B“起始的元素://*[starts-with(name(),'B')]

 contains(x,y)函数当其x字符串参数包含有y字符串参数时返回true.

选择所有名称包含”c“的元素://*[contains(name(),'C')]

9. string-length()

string-length函数返回字符串的字符数,你应该用&lt替代<, 用&gt代替>

选择名称长度为3的元素://*[string-length(name()) = 3]

10.多路径分隔符 |

选择所有的CCC和BBB元素 ://CCC | //BBB

选择所有的BBB元素和所有是AAA的子元素的EEE元素:/AAA/EEE | //BBB

可以合并的路径数目没有限制:/AAA/EEE | //DDD/CCC | /AAA | //BBB

相关文章

网友评论

    本文标题:xpath回顾温习

    本文链接:https://www.haomeiwen.com/subject/swbsfxtx.html