参考文档: https://www.runoob.com/xpath/xpath-syntax.html https://www.jianshu.com/p/69052fa15013
XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。
1.练习链接: https://www.w3school.com.cn/example/xmle/books.xml 查找所有的书 //book 查找第一本书: //book[1] 查找倒数第一本书: //book[last()] 查找倒数第二本书: //book[last() - 1]
小技巧:在控制台里面加上$x(’ 路径表达式’),可以调试Xpath路径表达式是否正确
查找属性等于category="children"的book 节点 != 查找属性等于category="children"的book 节点 not 查看属性category 不是children 的book 节点
通过属性的文本内容进行定位 text() 1.contains()方法模糊匹配 查看book下面title下文本内容包的节点 //book/title[contains(text(),‘Potter’)] 2. 使用属性值做精确匹配 查找book下year节点下文本内容为2005的内容 //book/year[(text()=2005)] 轴定位方式
1.同级元素 查找books1所有的同级元素都查找出来,“”表示所有 /bookstore/book[1]/following-sibling:: 2.父节点parent 查找books1所有的父元素都查找出来,“*”表示所有 3.查看后代元素 意思是:查找book2的子辈 注意 Xpath定位//和/的区别 //表示文档里的任何位置的节点 /表示文档里根下的那些节点 列如: //a//b/@abc 指的是文档中所有a元素下,属性为abc 的后代b元素(包括子代元素)(多级) //a/b/@abc 指的是文档中所有a元素下,属性为abc 的子代(一级) /a/b/@abc 指的是文档中根元素为a元素的,属性为abc 的子代