html - XPATH 根据上面元素中的名称返回 html 元素的内容
问题描述
<div class="vdatatable">
<div class="rowh">Emissions
</div>
<a name="anc0"></a>
<div class="optexrow oid0 row " data-oid="0">
<div class="key">CO2 Emissions
</div>
<div class="value">117 g/km
</div>
<div class="cf">
</div>
</div>
<a name="anc0"></a>
<div class="optexrow oid0 row1 " data-oid="0">
<div class="key">Standard Euro Emissions
</div>
<div class="value">EURO6
</div>
<div class="cf">
</div>
</div>
<div class="rowh">Engine and Drive Train
</div>
<a name="anc0"></a>
<div class="optexrow oid0 row " data-oid="0">
<div class="key">Engine Size
</div>
<div class="value">998 cc
</div>
<div class="cf">
</div>
</div>
<a name="anc0"></a>
<div class="optexrow oid0 row1 " data-oid="0">
<div class="key">Gears
</div>
<div class="value">5
</div>
<div class="cf">
</div>
</div>
<a name="anc0"></a>
<div class="optexrow oid0 row " data-oid="0">
<div class="key">Number of Valves
</div>
<div class="value">12
</div>
<div class="cf">
</div>
</div>
<a name="anc0"></a>
<div class="optexrow oid0 row1 " data-oid="0">
<div class="key">Transmission
</div>
<div class="value">Manual
</div>
<div class="cf">
</div>
</div>
<div class="rowh">Fuel Consumption
</div>
<a name="anc0"></a>
<div class="optexrow oid0 row " data-oid="0">
<div class="key">EC Combined
</div>
<div class="value">50.4 mpg
</div>
<div class="cf">
</div>
</div>
</div>
我想返回 div 类“rowh”中的数据。但基于名称“排放”。我只想要这些数据,而不是来自下一个 div 的数据,它具有完全相同的类但名称为“Engine and Drive Train”。我尝试了很多变化:
//div[contains(@class, 'optexrow')]/div[@class='key']/ancestor::div[starts-with(., 'Emissions')]
//div[contains(@class, 'rowh') and contains(., 'Emissions')]/div[@class=key]
//div[preceding-sibling::div[starts-with(., 'Emissions')] and following-sibling::div[@class = 'rowh']]
但不能隔离我想要的 div。不断拾取页面上的所有 div。预期结果应该是:
CO2 Emissions
117 g/km
Standard Euro Emissions
EURO6
解决方案
您可以使用以下表达式: //div[@class="rowh" 和 contains(text(), "Emissions")] @class 过滤类类型“rowh”,并使用 Contains 方法过滤带有“Emissions”的文本。
推荐阅读
- csv - 如何在 Neo4j 中从外部网站导入 csv?
- amazon-web-services - 如何从 EventBridge 定位 http api 网关或 ALB
- ios - 目标 C 显示最近的问题未定义的符号:_OBJC_CLASS_$_FIRApp
- excel - 如何在excel vba中将范围分配给命名范围?
- java - 普通类和注入类的区别
- python-3.x - 当我尝试在 Google Collab 中克隆 github 存储库时,为什么会收到“错误:命令错误,退出状态为 1”?
- reactjs - 为什么 react-image-magnify 在 swiper js 中不起作用?
- javascript - 多个动态输入 onchange 和 onblur 函数 javascript
- react-hooks - 如何使用 useState 挂钩将多个对象推送到数组中
- vue.js - Axios/Vue/Nuxt - 找出所有 API 调用何时完成