Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP简单HTML dom解析器搜索元素名称_Php_Dom_Xml Parsing - Fatal编程技术网

使用PHP简单HTML dom解析器搜索元素名称

使用PHP简单HTML dom解析器搜索元素名称,php,dom,xml-parsing,Php,Dom,Xml Parsing,我希望有人能帮助我。我正在使用PHP简单HTML DOM解析器(http://simplehtmldom.sourceforge.net/manual.htm)成功,但我现在正在尝试查找基于某个名称的元素。例如,在获取的HTML中,可能存在以下标记: <p class="mattFacer">Matt Facer</p> <p class="mattJones">Matt Jones</p> <p class="daveSmith">D

我希望有人能帮助我。我正在使用PHP简单HTML DOM解析器(http://simplehtmldom.sourceforge.net/manual.htm)成功,但我现在正在尝试查找基于某个名称的元素。例如,在获取的HTML中,可能存在以下标记:

<p class="mattFacer">Matt Facer</p>
<p class="mattJones">Matt Jones</p>
<p class="daveSmith">DaveS Smith</p>
但这不起作用。它什么也不返回

有可能这样做吗?我基本上想搜索任何包含单词“matt”的HTML元素。它可以是span、div或p

我在这里走到了死胡同

$html = str_get_html("http://www.testsite.com");
foreach($html->find('[class*=matt]') as $element) {
   echo $element;
}
让我们试试这个

也许是这个

foreach(array_merge($html->find('[class*=matt]'),$html->find('[id*=matt]')) as $element) {
    echo $element;
}

使用XPath(我不确定简单DOM是否支持XPath),您只需执行
//p[以(@class,'matt')开头]
谢谢-是的,这很有效!如果我不知道是类名还是id,是否可以这样做?例如:

foreach(array_merge($html->find('[class*=matt]'),$html->find('[id*=matt]')) as $element) {
    echo $element;
}