クラスごとに Zend_Dom_Query を使用して HTML ノードを取得するのは非常に簡単です。
$dom = new Zend_Dom_Query($html);
$rows = $dom->query("//div[@class='upc']");
ただし、HTML ノードには複数のクラスがあることがよくあります。たとえば、次のようになります。
<div class="hidden upc">
Zend_Dom_Query と XPath を使用して、class 属性に特定の値を指定するのではなく、クラスのリストに特定のクラスを含むすべてのノードを見つけるにはどうすればよいでしょうか?
Java を使用してこれを行う例を見つけましたが、それを PHP Xpath エンジンに適用すると、XPath クエリが無効であるというエラーが発生するため、機能しないようです。
//div[contains(concat(' ',normalize-space(@class),' '),' foo ')]