Xpath选择父有一些属性的节点

时间:2013-11-16 21:54:15

标签: html dom xpath

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

,请选择所有div

这里是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"]

但是如何添加“按父级过滤”?

请帮我解决..

问候!

2 个答案:

答案 0 :(得分:1)

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

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

并查看这是否适合您。

答案 1 :(得分:0)

我不确定这是否是你想要的,但看看这是否对你有所帮助:

  

.// DIV [@数据类别的运动= “篮球”] /格[@class!= “块事件头”]