XPath的一些使用方式
一般和XmlDocument一起使用来获取xml文件的节点信息
/*获取根节点
* /school,根节点必须叫做school
*
* 获取根节点school下面的class节点,如果有多个会全部找到
* /school/class
*
* 获取根节点下的class节点下的name节点,返回所有的值
* /school/class/name
*
* 表示递归查找,获取所有的class节点,这个不管是在几层下面的节点,只要是名称为class就会返回
* //class
*
* 查找所有class节点下面的name节点,该节点必须出现在class节点下面
* //class/name
*
* *表示查找所有class节点下面的name节点下的所有的节点,*表示匹配所有的节点
* //class/name/*
*
* 查找根节点下面的所有元素
* //*
*
* 选择属性为id的节点
* //@id
*
* //选择有id属性的name节点
* //name[@id]
*
* //选择有属性的name节点
* //name[@*]
*
* //选择有id属性并且id属性为b1的name节点
* //name[@id='b1']
*
* //选择属性为id并且属性的值去掉两端的空格为"bbb"的name节点
* //类似于Trem()属性的去掉两端的空格
* //name[normalize-space(@name)="bbb"]
*
* //选择含有两个bbb元素的元素
* 元素叫什么名称都可以,但是他的子元素必须有两个"bbb"节点
* //*[count(bbb)=2]
*
* //选择具有两个子元素的元素
* //*[count(*)=2]
*
* //选择所有name等于"bbb"的元素
* 等价于//bbb
* //*[name()='bbb']
*
* 选择所有节点名称是以b开头的节点
* //*[starts=with(name(),'b')]
*
* 选择所有节点名称包含b的节点
* //*[contains(name(),'b')]
*
* 获取元素名称长度小于3的元素
* //*[string-length(name())<3]
*
* 获取所有名称为bbb或者名称为ccc的元素
* //bbb|//ccc
*
* 轴
* 表示子元素
* /bbb/ccc等价于 /child::bbb/child::ccc
*
* 后代元素,不包括后代元素所包含的后代元素
* //表示递归查询后代元素,和/descendant::是不同的
* /bbb/descendant::ccc
*
* 查询所有节点ddd的父级节点,如果有父级节点的话
* //ddd/parent::*
*
* 包含bbb的节点以及bbb后代的节点,后代不收层数限制
* /aa/bb/descendant-or-self::*
*
* 获取所有的ggg节点的祖先节点,父节点已经与节点的父节点等
* //ggg/ancestor::*
*
*/