Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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 如何使用简单的HTMLDOM检查两个属性?_Php_Html_Simple Html Dom - Fatal编程技术网

Php 如何使用简单的HTMLDOM检查两个属性?

Php 如何使用简单的HTMLDOM检查两个属性?,php,html,simple-html-dom,Php,Html,Simple Html Dom,我需要使用简单的HTMLDOM获得一个非常特定的标记,并且必须检查两个属性才能做到这一点,但我不确定如何进行。现在我有这个: foreach($html->find("ul[class=someclass]") as $step1) 但是在相同的标记中,还有一个id属性,它等于,比方说,“xyz”。那我怎么能同时检查呢?我假设是这样的(尽管它似乎不起作用): 有什么帮助吗?我不知道那个库,但如果穆萨的答案没有帮助,请尝试以下方法: $myElements = array(); forea

我需要使用简单的HTMLDOM获得一个非常特定的标记,并且必须检查两个属性才能做到这一点,但我不确定如何进行。现在我有这个:

foreach($html->find("ul[class=someclass]") as $step1)
但是在相同的
标记中,还有一个
id
属性,它等于,比方说,“xyz”。那我怎么能同时检查呢?我假设是这样的(尽管它似乎不起作用):


有什么帮助吗?

我不知道那个库,但如果穆萨的答案没有帮助,请尝试以下方法:

$myElements = array();
foreach($html->find("ul[class=someclass]") as $step1) {
    echo "found some class\n";
    if (isset($step1->id) {
       echo "found {$step->id}\n";
    }
    if (isset($step1->id) && $step1->id == 'xyz') {
        $myElements[] = $step1;
    }
}
var_dump($myElements);

我不知道那个图书馆,但如果穆萨的答案没有帮助,试试这个:

$myElements = array();
foreach($html->find("ul[class=someclass]") as $step1) {
    echo "found some class\n";
    if (isset($step1->id) {
       echo "found {$step->id}\n";
    }
    if (isset($step1->id) && $step1->id == 'xyz') {
        $myElements[] = $step1;
    }
}
var_dump($myElements);

这两种方法中的任何一种都应该有效:

  • ul#xyz[类别=结果]
  • ul.results_ul[id=xyz]

这两种方法中的任何一种都应该有效:

  • ul#xyz[类别=结果]
  • ul.results_ul[id=xyz]

虽然从理论上讲这是可行的,但simple\u html\u dom似乎不喜欢这样。那么,会发生什么呢?这可能是一个问题,即属性id在每个节点上都不可用。在本例中,执行以下操作:if(isset($step1->id)&&$step1->id='xyz'){打印时我什么也没得到。我在代码中添加了一些调试输出。这应该可以帮助您了解正在发生的事情。感谢所有的帮助。不过,我想我还有另一个问题。页面上有几个同名的类,但出于某种原因,它只得到第一个。我可以指定要使用哪个类吗ll from?从理论上讲,这是可行的,但simple_html_dom似乎不喜欢这样。那么,会发生什么?可能是一个问题,属性id在每个节点上都不可用。在这种情况下,请执行以下操作:if(isset($step1->id)&&&$step1->id='xyz'){打印时我什么也没得到。我在代码中添加了一些调试输出。这应该可以帮助您了解正在发生的事情。感谢所有的帮助。不过,我想我还有另一个问题。页面上有几个同名的类,但出于某种原因,它只得到第一个。我可以指定要使用哪个类吗ll from?元素本身是否具有id属性,或者它是内部的元素?也许一个示例HTML会有所帮助。这就是我试图从中提取的代码:
      元素本身是否具有
      id
      属性,或者它是其中的一个元素?也许一个示例HTML会有所帮助。这就是我试图从中提取的代码: