我在使用 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/