要求提取a标签下面b标签,h标签之间的所有元素:
例子:
- <a>
- <b></b>
- <c></c>
- <d></d>
- <e></e>
- <f></f>
- <g></g>
- <h></h>
- </a>
用到函数:
- following-sibling::node(): 选取当前节点之后的所有同级节点。
- count :用来计算某个节点集合中的节点数目。
- position()://a/following-sibling::node()[position()<3],选取a标签下最前面的两个属于 a 元素的子元素 b,c 元素。
提取a下面b,h之间的所有元素:
xpath:
//a/b/following-sibling::node()[position()<count(//a/b/following-sibling::node())-count(//a/h/following-sibling::node())]
解释://a/b/following-sibling::node() :找到a标签下b标签后所有同级节点。
count(//a/b/following-sibling::node()):统计a标签下,b标签后所有同级节点个数.
count(//a/h/following-sibling::node()):原理同上一个。
======================================xpath模糊匹配==============================================
contains函数可用于模糊匹配:
//div[contains(text(),'发布时间')]:匹配内容中包含“发布时间”的所有div标签