------------------------------------------------------------------------------
normalize-space(@name)='value' 去掉空格
not(@name='value') 取非
//*[count(BBB)=2]
//*[count(*)=2]
//*[count(*)=3]
//*[name()='BBB']
//*[starts-with(name(),'B')]
//*[contains(name(),'C')]
//*[string-length(name()) = 3]
//*[string-length(name()) < 3]
//*[string-length(name()) > 3]
---------------------------------------
//CCC | //BBB
/AAA/EEE | //BBB
/AAA/EEE | //DDD/CCC | /AAA | //BBB
--child-------------------------------------
/AAA 等价于 /child::AAA
/AAA/BBB 等价于 /child::AAA/child::BBB
/child::AAA/BBB 可以混合使用
--descendant-------------------------------------
/descendant::* 取得所有子孙节点
/AAA/BBB/descendant::*
//CCC/descendant::*
//CCC/descendant::DDD
--parent-------------------------------------
//DDD/parent::*
--ancestor-------------------------------------
/AAA/BBB/DDD/CCC/EEE/ancestor::*
//FFF/ancestor::*
--following-sibling-------------------------------------
/AAA/BBB/following-sibling::*
//CCC/following-sibling::*
--preceding-sibling-------------------------------------
/AAA/XXX/preceding-sibling::*
//CCC/preceding-sibling::*
--following-------------------------------------
/AAA/XXX/following::*
//ZZZ/following::*
--preceding-------------------------------------
/AAA/XXX/preceding::*
//GGG/preceding::*
--descendant-or-self-------------------------------------
/AAA/XXX/descendant-or-self::*
//CCC/descendant-or-self::*
--ancestor-or-self-------------------------------------
/AAA/XXX/DDD/EEE/ancestor-or-self::*
//GGG/ancestor-or-self::*
---------------------------------------
//GGG/ancestor::*
//GGG/descendant::*
//GGG/following::*
//GGG/preceding::*
//GGG/self::*
--position() -------------------------------------
position() 坐标定位 从 1 开始
floor() 下取整
ceiling() 上取整
//BBB[position() mod 2 = 0 ]
//BBB[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]
//CCC[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]