当前位置:实例文章 » 其他实例» [文章]Xpath定位同级元素

Xpath定位同级元素

发布人:shili8 发布时间:2024-11-19 10:46 阅读次数:0

**XPath 定位同级元素**

在 XPath 中,同级元素是指具有相同父节点的元素。这些元素可以通过使用 `//` 或 `./` 运算符来定位。

###1. 使用 `//` 运算符`//` 运算符用于查找所有匹配给定模式的元素,无论它们在文档树中的位置如何。例如,下面的 XPath 表达式将找到所有 `

` 元素:

xpath//p


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p | //span


###2. 使用 `./` 运算符`./` 运算符用于查找当前元素的子元素。例如,下面的 XPath 表达式将找到所有 `

` 元素的子元素:

xpath./p


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath./p | ./span


###3. 使用 `preceding-sibling` 和 `following-sibling` 运算符`preceding-sibling` 和 `following-sibling` 运算符用于查找当前元素的前一个或后一个同级元素。例如,下面的 XPath 表达式将找到所有 `

` 元素的前一个同级元素:

xpathpreceding-sibling::p


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpathpreceding-sibling::p | preceding-sibling::span


###4. 使用 `ancestor` 运算符`ancestor` 运算符用于查找当前元素的祖先元素。例如,下面的 XPath 表达式将找到所有 `
` 元素的祖先元素:

xpathancestor::div


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpathancestor::div/p | ancestor::div/span


###5. 使用 `contains` 运算符`contains` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素包含 "hello" 的文本:

xpath//p[contains(text(), 'hello')]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[contains(text(), 'hello')] | //span[contains(text(), 'hello')]


###6. 使用 `starts-with` 运算符`starts-with` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素开始于 "hello" 的文本:

xpath//p[starts-with(text(), 'hello')]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[starts-with(text(), 'hello')] | //span[starts-with(text(), 'hello')]


###7. 使用 `ends-with` 运算符`ends-with` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素结束于 "hello" 的文本:

xpath//p[ends-with(text(), 'hello')]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[ends-with(text(), 'hello')] | //span[ends-with(text(), 'hello')]


###8. 使用 `matches` 运算符`matches` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素匹配 "hello" 的文本:

xpath//p[matches(text(), 'hello')]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[matches(text(), 'hello')] | //span[matches(text(), 'hello')]


###9. 使用 `translate` 运算符`translate` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素匹配 "hello" 的文本:

xpath//p[translate(text(), 'abc', 'xyz') = 'hlo']


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[translate(text(), 'abc', 'xyz') = 'hlo'] | //span[translate(text(), 'abc', 'xyz') = 'hlo']


###10. 使用 `not` 运算符`not` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素不匹配 "hello" 的文本:

xpath//p[not(matches(text(), 'hello')]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[not(matches(text(), 'hello')] | //span[not(matches(text(), 'hello')]


###11. 使用 `or` 运算符`or` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素匹配 "hello" 或 "world" 的文本:

xpath//p[matches(text(), 'hello') or matches(text(), 'world')]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[matches(text(), 'hello') or matches(text(), 'world')] | //span[matches(text(), 'hello') or matches(text(), 'world')]


###12. 使用 `and` 运算符`and` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素匹配 "hello" 和 "world" 的文本:

xpath//p[matches(text(), 'hello') and matches(text(), 'world')]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[matches(text(), 'hello') and matches(text(), 'world')] | //span[matches(text(), 'hello') and matches(text(), 'world')]


###13. 使用 `some` 运算符`somes` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素匹配 "hello" 或 "world" 的文本:

xpath//p[some $x in ('hello', 'world') satisfies matches(text(), $x)]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[some $x in ('hello', 'world') satisfies matches(text(), $x)] | //span[some $x in ('hello', 'world') satisfies matches(text(), $x)]


###14. 使用 `every` 运算符`every` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素匹配 "hello" 和 "world" 的文本:

xpath//p[every $x in ('hello', 'world') satisfies matches(text(), $x)]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[every $x in ('hello', 'world') satisfies matches(text(), $x)] | //span[every $x in ('hello', 'world') satisfies matches(text(), $x)]


###15. 使用 `count` 运算符`count` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素匹配 "hello" 的文本:

xpath//p[count(matches(text(), 'hello')) =1]


如果我们想找到所有同级 `

` 和 `` 元素,可以使用以下 XPath 表达式:

xpath//p[count(matches(text(), 'hello')) =1] | //span[count(matches(text(), 'hello')) =1]


###16. 使用 `sum` 运算符`somes` 运算符用于查找当前元素的子字符串。例如,下面的 XPath 表达式将找到所有 `

` 元素匹配 "hello" 的文本:

xpath//p[sum(matches(text(), 'hello')) =1]


如果我们想找到所有同级 `

` 和 ``

相关标签:
其他信息

其他资源

Top