2011-05-06 15 views
1

這是很容易得到使用Zend_Dom_Query通過類的HTML節點:使用PHP/Zend_Dom_Query獲取帶有多個類的HTML節點的XPath查詢?

$dom = new Zend_Dom_Query($html); 
$rows = $dom->query("//div[@class='upc']"); 

然而,HTML的節點往往有多個類,如:

<div class="hidden upc"> 

這怎麼可能,使用Zend_Dom_Query和XPath,找到所有節點,其中包括類的列表中的特定類,而不是具有類屬性的特定值?

I have found an example that does this using Java,但它應用到PHP XPath引擎似乎並沒有工作,因爲它給出了一個錯誤的XPath查詢無效:

//div[contains(concat(' ',normalize-space(@class),' '),' foo ')] 
+0

您是否正在尋找? http://westhoffswelt.de/blog/0036_xpath_to_select_html_by_class.html – 2011-05-06 21:56:38

+0

示例XPath用空格填充值並使用'contains()'查找也填充空格的NMTOKEN是正確的方法。這是一個有效的XPath表達式。你遇到了什麼錯誤? – 2011-05-07 01:26:39

+2

對於XPath表達式,您是不是應該使用'$ dom-> queryXpath(...)'而不是'$ dom-> query(...)'?您從上次顯示的XPath表達式得到的具體錯誤消息是什麼? – LarsH 2011-05-07 02:44:09

回答

1

我認爲你正在尋找這個以選擇div與多個類別:

$rows = $dom->query('div.hidden.upc');