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函数返回字符串的字符数,你应该用<替代<, 用>代替>
选择名称长度为3的元素://*[string-length(name()) = 3]
10.多路径分隔符 |
选择所有的CCC和BBB元素 ://CCC | //BBB
选择所有的BBB元素和所有是AAA的子元素的EEE元素:/AAA/EEE | //BBB
可以合并的路径数目没有限制:/AAA/EEE | //DDD/CCC | /AAA | //BBB
网友评论