html - Xpath 选择父级具有某些属性的节点

标签 html dom xpath

我在使用 xpath 时遇到问题。 我需要从类别中选择所有项目。 像(伪语言)这样的东西: 选择所有 div,如果 class != block-events-head 和父属性 data-category-sport="Basketball"

这里是 html 示例:

<div data-category-sport="Basketball" data-category-treeid="972911">
<div class="block-events-head">...</div>
<div id="event_1558960" data-event-treeid="1558960">...</div>
<div id="event_1559240" data-event-treeid="1559240">...</div>
<div id="event_1559560" data-event-treeid="1559560">...</div>
</div>

我正在尝试:

.//div[@class!="block-events-head" and ../div[@data-category-sport='Basketball']]

但它不起作用:(

.//div[@class!="block-events-head"]

有效,但如何添加“按父项筛选”?

请帮我解决..

问候!

最佳答案

您的 XPath 表达式的问题是第二项 ../div[@data-category-sport='Basketball'] 也适用于节点的所有兄弟节点第一个术语 @class!="block-events-head" 成立。您想要的是检查条件的两个部分是否具有相同的父子关系。这实际上很容易实现。只需将对父级的检查移动到层次结构的更高级别即可

.//div[@data-category-sport='Basketball']/div[@class!="block-events-head"]

看看这是否适合你。

关于html - Xpath 选择父级具有某些属性的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024378/

相关文章:

xml - 如何在 Postgres 中使用 xpath 对齐 XML 元素

html - 将 li 中的文本居中,在 div 中的 ul 中居中

html - 将圆形 Logo 添加到 magento 2 标题

javascript - 使用javascript处理HTML输入(日期)类型中的日期

php - 如何获取我的 jQuery AJAX php 代码来更新 div?

javascript - jQuery 是否在两个不同的 CSS 类之间进行动画处理?

xml - XPath 选择节点直到条件

javascript - 如何在具有相同名称但文件不同的javascript链接的页面中获取selenium的xpath?

javascript - HTML 中多个表中同一列的相同 [不固定] 宽度

javascript - Angular - 更新模板中的徽章编号