2024-02-01 23:04:22
XPath(XML Path Language)是一种用于在XML文档中查找信息的语言,广泛应用于爬虫和自动化测试中。通过路径表达式,XPath可以高效地选取XML文档中的节点或节点集。以下是关于XPath定位的详细解析:
一、XPath基础基本表达式:
nodename:选取此节点的所有子节点。
/:从根节点选取。
//:从匹配选择的当前节点选择文档中的节点,不考虑位置。
.:选取当前节点。
..:选取当前节点的父节点。
@:选取属性。
常用案例:
//title:选取所有<title>元素。
//div[@class='example']:选取所有class属性为example的<div>元素。
//a[@href='
谓语表达式:
谓语用于查找特定节点或包含指定值的节点,嵌在方括号中。
示例:
//book[1]:选取第一个<book>元素。
//book[price>35.00]:选取所有价格大于35.00的<book>元素。
通配符:
*:匹配任何元素节点。
@*:匹配任何属性节点。
node():匹配任何类型的节点。
元素属性定位:
快速定位唯一属性,如//*[@id="images"]。
层级与属性结合:
解决没有属性问题,如//div[@id="images"]/a[1]。
属性与逻辑结合:
解决多个属性重名问题,如//*[@id="su" and @class="bg s_btn"]。
特殊定位方式:
查找id属性包含特定字符串的元素,如//*[contains(@id,'kw')]。
查找文本包含特定字符串的元素,如//*[contains(text(),'新闻')]。
查找class属性以特定字符串开头的元素,如//*[starts-with(@class,'s_form_wrapper')]。
使用多个相对路径定位元素,如//div[@class='formgroup']//input[@id='user-message']。
轴定位:
使用::表示轴关系,如//*[@id="head"]//following::input[1]查找id="head"元素后的第一个<input>元素。
使用Chrome开发者工具:
点击选择光标,选择页面元素,右键选择“Copy XPath”复制表达式。
示例:获取到的XPath路径可能为//*[@id="su"],full XPath可能为/html/body/div[1]/div[1]/div[5]/div/div/form/span[2]/input。
验证表达式:
按“Ctrl+F”在控制台中输入XPath路径,对应元素会有颜色标识。
通过掌握这些XPath表达式的技巧,可以高效地在XML或HTML文档中定位和提取所需数据。