XPath作为路径寻址
基本的XPath语法类似于文件系统寻址。如果路径以斜杠/开始,那么它表示所需元素的绝对路径。
/AAA
选择根元素AAA
/AAA/CCC
选择根元素AAA的所有CCC子元素
/AAA/DDD/BBB
选择根元素AAA的DDD子元素下的所有BBB子元素
//的使用
如果路径以//开头,则会选择文档中满足条件的所有元素。
//BBB
选择所有BBB元素
//DDD/BBB
选择DDD元素下所有BBB子元素。
所有元素:*
/AAA/CCC/DDD/*
选择元素/AAA/CCC/DDD所包含的所有元素
/*/*/*BBB
选择具有3个祖先的所有元素BBB
//*
选择所有元素
[]内的其他条件
[]中的因子可以进一步指定一个元素,括号中的数字表示元素在选定集中的位置,函数last()选择 选择中的最后一个元素
/AAA/BBB[1]
选择元素AAA的第一个子级
/AAA/BBB[last()]
选择元素AAA的最后一个子级
属性
属性由@prefix指定
//@id
选择所有具有id属性的元素
//BBB[@id]
选择具有id属性的BBB元素
//BBB[@name]
选择具有名称属性的BBB元素
//BBB[@*]
选择具有任何属性的BBB元素
//BBB[not(@*)]
选择没有属性的BBB元素
属性值
属性的值可以用作选择标准,函数normalize-space删除首尾空格。
//BBB[@id='b1']
选择具有值为b1的id属性的BBB元素
//BBB[@name='bbb']
选择具有值为bbb的name属性的BBB元素
//BBB[normalize-space(@name)='bbb']
选择具有值为BBB的属性名称的BBB元素,在比较之前删除首尾空格。