2014-10-05 36 views
0

我试图从一个div中提取文本,但不包括给定类:的XPath排除给予

这是我尝试:

$pattern = "//div/@title[not(contains (@class, 'second_card local_impact_icon impact-2'))]"; 

但不排除给定的类,我只需要提取标题=''的文本,但只是从第一个div标题。

这是HTML:

<div class="match_info"><div title='Yellow Card' class='local_impact_icon impact-1'></div><div title='Red Card' class='second_card local_impact_icon impact-2'></div></div> 

回答

2

以下XPath

//div/div[not(contains (@class, 'second_card local_impact_icon impact-2'))]/@title 

回报

title="Yellow Card" 

简单的解释 - 只是选择不包含您希望类的DIV仅排除和检索此div的标题属性。当您在位置../@title处设置此排除项时,您已经在两个div的标题属性中。

而且随着问题是如何检索文本 - 在给定的例子

string(//div/div[not(contains (@class, 'second_card local_impact_icon impact-2'))]/@title) 

回报Yellow Card

+0

它的工作。感谢您的解决方案。 – Marx 2014-10-05 14:27:57

+0

@马克斯很高兴帮助你。只是想问,如果你想排除只有**这两个**类的div或只有至少有“second_card”类的每个div,因为我认为这可能是一个问题。那么最好有两个“不包含”语句分别检查两个类。 – 2014-10-05 14:31:17

+0

只是两个班,谢谢你反正问。 – Marx 2014-10-07 15:18:00