Xpath基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xpath基础相关的知识,希望对你有一定的参考价值。
XPath是一门在XML文档中查找信息的语言。XPath可用来在XML文档中对元素和属性进行遍历。由于我们单纯使用dom定位节点时,大部分时间需要一层一层的处理,如果使用xPath,定位节点将变得很轻松。它可以根据路径,属性,甚至是条件进行节点的检索。
路径表达式:
- 斜杠(/) 作为路径内部的分隔符;
- 同一个节点有绝对路径和相对路径两种写法
- "." 表示当前节点
- ".." 表示当前节点的父节点
- nodename (节点名称) : 表示选择该节点的所有子节点
- "/" 表示选择根节点
- "//" 表示选择任意位置的某个节点
- "@" 表示选择某个属性
- /bookstore : 选择根节点 bookstore, 这是绝对路径写法。
- "bookstor/book" 选取所有属于bookstore 的子元素的book 元素,这是相对路径写法。
- //book 选择所有book 子元素,而不管它们在文档中的位置
- bookstore//book 选择所有属于bookstore 元素的后代的book元素,而不管它们位于bookstore 之下的什么位置。
- //@lang 选取所有名为lang的属性
谓语
"谓语条件",就是对路径表达式的附加条件;所有条件都写在方括号[] 中,表示对节点进行进一步的筛选。
- /bookstroe/book[1] 表示选择bookstroe 的第一个book 子元素
- /bookstroe/book[last()] 表示选择bookstore 的最后一个book子元素。
- /bookstore/book[last()-1] 表示选择bookstore 的倒数第二个book子元素。
- /bookstore/book[position()<3] 表示选择bookstore 的前两个book子元素。
- //title[@lang] 表示选择所有具有lang 属性的title 节点。
- //title[@lang=‘eng‘] 表示选择所有lang属性的值等于“eng” 的title 节点。
- /bookstore/book[price] 表示选择bookstore的book子元素,且被选中的book元素必须带有price子元素。
- /bookstore/book[price>35.00] 表示选择bookstore 的book子元素,且被选中的book 元素的price 子元素值必须大于35.
- /bookstore/book[price>35.00]/title 表示在上例结果集合中,选择title子元素。
- /bookstore/book/price[.>35.00] 表示选择值大于35的"/bookstore/book"的price子元素。
通配符
- "*" 表示匹配任何元素节点
- "@" 表示匹配任何属性值
- node() 表示匹配任何类型的节点
- "//*" 表示选择文档中的所有元素节点
- "/*/*" 表示选择所有第二层的元素节点。
- "/bookstore/*" 表示选择bookstore 的所有元素子节点
- "//title[@*]" 表示选择所有带有属性的title元素。
以上是关于Xpath基础的主要内容,如果未能解决你的问题,请参考以下文章