.NET-20-XPath

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::*
             *
             */

猜你喜欢

转载自blog.csdn.net/m0_37532448/article/details/81462260