Php 通过每个元素两个或多个属性查找具有简单html dom解析器的部件

Php 通过每个元素两个或多个属性查找具有简单html dom解析器的部件,php,parsing,simple-html-dom,Php,Parsing,Simple Html Dom,我想说,我知道,许多人认为,对于HTML解析器来说,简单的HTMLDOM解析器是一个非常糟糕的选择。现在我仍然需要使用它 我读过一些文章,其中描述了如何按每个元素的两个或多个属性进行搜索。 他们提出了类似的建议,还有一种可能是阵列过滤 foreach ( tag[attr1=value] as tag1 ) { foreach ( tag[attr2=value] as tag2 ) { // print tag2[attr1=value,attr2=value]

我想说,我知道,许多人认为,对于HTML解析器来说,简单的HTMLDOM解析器是一个非常糟糕的选择。现在我仍然需要使用它

我读过一些文章,其中描述了如何按每个元素的两个或多个属性进行搜索。 他们提出了类似的建议,还有一种可能是阵列过滤

foreach ( tag[attr1=value] as tag1 )
{
   foreach ( tag[attr2=value] as tag2 )
   {
      // print tag2[attr1=value,attr2=value]
   }
}
我的问题是关于通过两个属性查找部件的固有可能性。我没有在手册里找到,但不是所有的东西都在手册里


有人知道有这样或类似的方法吗?

以前从未使用过简单的HTML DOM解析器。但是它的主页上说它是以jQuery的方式工作的,所以请尝试
标记[attr1=value][attr2=value]
()

,因为我认为目前没有办法这样做。它应该由本脚本的作者或其他愿意继续开发本项目的开发人员编辑。不知道许可证是否允许它。

在查看了简单的\u html\u dom之后,我知道除了嵌套的foreach循环之外,没有其他方法可以实现您所寻找的功能。对
标记[attr=val][attr2=val]

此外,每个选择器只是简单地添加到返回的节点中,而不会从中删除,因此类似于
tag.class[attr=val]或tag#id[attr=val]
之类的内容,我尝试将其作为一种类似功能的工作

同样,我尝试了
$html->find(“div[attr=val]”)->find(“div[attr2=val2]”)
,但这也失败了,因为简单的html DOM返回一个节点数组,而不是一个新的树对象,使得链接不可能


最好的方式是你在问题中的发帖方式。

大概八年后,他们已经想出了一个更新版本

要使用具有多个属性的简单HTML DOM解析器

foreach($dom->find('tag[attr1][attr2]') as $stuff){
    echo $stuff;
}

我试过这个。不。是的,这是DOMDOcument功能的一个很好的例子,但是正如主题所说,我需要特别简单的HTMLDOM解析器。如果100%不可能,那么我需要有人百分之百地知道,事实就是这样。你不能百分之百地说。这取决于HTML类型,我的意思是它显示HTML与HTML之间的差异。此外,我在示例中也犯了一个错误,请参见检查这个$xpath->query(“/*/div[@class='name'][@id='someId']][class='SomeClassName']”,但您仍然在谈论DOMDocument。这个问题显然是关于简单的HTML DOM解析器->
foreach($dom->find('tag[attr1][attr2]') as $stuff){
    echo $stuff;
}