如何用XPath选择具有特定属性值的节点,语法是怎样的?

XPath通过//元素名[@属性名='值']匹配指定属性值的节点,支持contains()进行部分匹配及and/or组合多条件。

使用XPath选择具有特定属性值的节点,可以通过在方括号中添加属性条件来实现。基本语法是:

//元素名称[@属性名='属性值']

这个表达式会匹配文档中所有指定元素名称且其属性等于给定值的节点。

精确匹配属性值

如果你想选择 class 属性为 example 的 div 元素,可以这样写:

  • //div[@class='example'] —— 选择 class 完全等于 "example" 的 div
  • //a[@href='https://example.com'] —— 选择链接地址为指定值的 a 标签

包含或部分匹配属性值

如果属性值是多个词(比如 class 包含多个类名),可以使用 contains() 函数:

  • //div[contains(@class, 'example')] —— 匹配 class 中包含 "example" 的 div,即使还有其他类名
  • //input[contains(@name, 'username')] —— name 属性包含 "username" 的 input 元素

多条件筛选

可以组合多个属性条件进行更精确的选择:

  • //img[@src='logo.png' and @alt='Logo'] —— 同时满足 src 和 alt 属性的 img
  • //button[@type='submit' or @class='btn'] —— 满足任一条件的 button
基本上就这些常见用法。掌握方括号内用 @属性名='值' 的写法,再结合函数如 contains(),就能应对大多数场景。