XPath语法
来源:互联网 发布:天界五行进阶数据 编辑:程序博客网 时间:2024/05/01 05:57
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。
推荐一个挺不错的网站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 里面有很不错的例子,下面的例子中红色字体表示使用对应语法获取的元素(或属性)。
1、斜线/从根节点选择,基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径,获取满足该路径的所有节点:
选择根元素 语法:/AAA
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
选择AAA的所有CCC子元素 语法:/AAA/CCC
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
2、如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系),//会做全文档扫描。
选择所有BBB元素 语法://BBB
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
选择所有父元素是DDD的BBB元素 语法://DDD/BBB
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
选择AAA的CCC的所有BBB元素 语法:/AAA/CCC//BBB
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
3、点“.” 选取当前节点。
4、“..”选取当前节点的父节点。
5、”@”选取属性。
选择所有的id属性 语法://@id 注意:这里选取的是属性而不是方法。
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
选择有id属性的BBB元素 语法://BBB[@id] 区别于上面的属性选择
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
选择id属性为“id1”的BBB元素 语法://BBB[@id="b1"]
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
选择有任意属性的BBB元素 语法://BBB[@*]
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
选择不具有任何属性的BBB元素 语法://BBB[not(@*)]
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
本篇主要学习XPath 使用路径表达式在 XML 文档中选取节点。斜线”/”是从根节点选择,双斜线”//”从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置,点”.”选取当前节点,两点”..”选取当前节点的父节点,“@”为选取属性。
XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。
推荐一个挺不错的网站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 里面有很不错的例子,下面的例子中红色字体表示使用对应语法获取的元素(或属性)。
1、斜线/从根节点选择,基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径,获取满足该路径的所有节点:
选择根元素 语法:/AAA
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
选择AAA的所有CCC子元素 语法:/AAA/CCC
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
2、如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系),//会做全文档扫描。
选择所有BBB元素 语法://BBB
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
选择所有父元素是DDD的BBB元素 语法://DDD/BBB
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
选择AAA的CCC的所有BBB元素 语法:/AAA/CCC//BBB
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
3、点“.” 选取当前节点。
4、“..”选取当前节点的父节点。
5、”@”选取属性。
选择所有的id属性 语法://@id 注意:这里选取的是属性而不是方法。
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
选择有id属性的BBB元素 语法://BBB[@id] 区别于上面的属性选择
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
选择id属性为“id1”的BBB元素 语法://BBB[@id="b1"]
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
选择有任意属性的BBB元素 语法://BBB[@*]
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
选择不具有任何属性的BBB元素 语法://BBB[not(@*)]
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
本篇主要学习XPath 使用路径表达式在 XML 文档中选取节点。斜线”/”是从根节点选择,双斜线”//”从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置,点”.”选取当前节点,两点”..”选取当前节点的父节点,“@”为选取属性。
0 0
- xPath语法
- XPath语法
- xpath语法
- XPath 语法
- XPath语法
- XPath 语法
- XPath 语法
- XPath 语法
- XPath 语法
- XPath 语法
- XPath 语法
- XPath 语法
- XPath语法
- XPath语法
- XPath语法
- xpath 语法
- XPath语法
- XPath语法
- 类成员函数指针
- 网上处方药物手册Rxlist 及其药学信息资源
- 使用mybatis开发原始dao
- 仿qq未读消息
- 深入理解JVM性能调优
- XPath语法
- 直接插入排序算法
- 第一篇CSDN博客
- Java线程的5种状态及切换(透彻讲解)
- html5开发利器——sublimetext2+emmet插件
- uncaught syntaxerror unexpected token )
- Linux异步-----信号量集
- Spring3+Hibernate3(Jpa) 配置多个数据源的解决方案(基于注解)
- (jenkins)hudson平台搭建android项目持续化集成以及基于NativeDriver的UI自动化测试环境