XPath查询,使用PHP/Zend_Dom_查询获取具有多个类的HTML节点?

XPath查询,使用PHP/Zend_Dom_查询获取具有多个类的HTML节点?,php,zend-framework,zend-dom-query,Php,Zend Framework,Zend Dom Query,使用Zend_Dom_按类查询很容易获得HTML节点: $dom = new Zend_Dom_Query($html); $rows = $dom->query("//div[@class='upc']"); 但是,HTML节点通常有多个类,例如: <div class="hidden upc"> 我认为您正在寻找此选项,以选择具有多个类的div: $rows=$dom->query('div.hidden.upc')我认为您正在寻找此选项,以选择具有多个类的div: $

使用Zend_Dom_按类查询很容易获得HTML节点:

$dom = new Zend_Dom_Query($html);
$rows = $dom->query("//div[@class='upc']");
但是,HTML节点通常有多个类,例如:

<div class="hidden upc">

我认为您正在寻找此选项,以选择具有多个类的div:


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

我认为您正在寻找此选项,以选择具有多个类的div:


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

您正在搜索此文件吗?示例XPath使用空格填充值,并使用
contains()
查找同样填充空格的NMTOKEN,这是正确的方法。这是一个有效的XPath表达式。您遇到了什么错误?您不应该使用
$dom->queryXpath(…)
而不是
$dom->query(…)
作为XPath表达式吗?另外,您从上次显示的XPath表达式中得到的确切错误消息是什么?您的问题是为什么“zend framework”无法处理语法有效的XPath表达式。这根本不是XPath问题。如果您提供了格式良好的XML文件(尽可能小),XPath表达式,并告诉我们结果是什么,以及您期望的结果是什么,那么这将是一个XPath问题,并要求解释为什么提供的XPath表达式没有选择预期的节点,以及使用哪个XPath表达式选择预期的节点。也许这解释了为什么19小时后你仍然有0个答案?你在搜索这个吗?示例XPath使用空格填充值,并使用
contains()
查找同样填充空格的NMTOKEN,这是正确的方法。这是一个有效的XPath表达式。您遇到了什么错误?您不应该使用
$dom->queryXpath(…)
而不是
$dom->query(…)
作为XPath表达式吗?另外,您从上次显示的XPath表达式中得到的确切错误消息是什么?您的问题是为什么“zend framework”无法处理语法有效的XPath表达式。这根本不是XPath问题。如果您提供了格式良好的XML文件(尽可能小),XPath表达式,并告诉我们结果是什么,以及您期望的结果是什么,那么这将是一个XPath问题,并要求解释为什么提供的XPath表达式没有选择预期的节点,以及使用哪个XPath表达式选择预期的节点。也许这就解释了为什么19小时后你仍然有0个答案?
//div[contains(concat(' ',normalize-space(@class),' '),' foo ')]