当有多个 类 时,如何在简单 html dom 中使用查找方法

How to use find method in simple html dom when have multiple classes

如果我有这样的元素

<h1 class="first second last">
    <p>Paragraph</p>
</h1>

我只想对这三个 类 使用查找方法。我这样试过:

$html->find('first.second.last',0)->plaintext;

但它不起作用。有什么想法可以针对这种情况使用 find 方法吗?

试试这个代码:

<script type="text/javascript">
  alert(document.getElementsByClassName("first second last"));
</script>

使用此代码,您可以获得 dom 元素。

getElementsByClassName() 是您的解决方案。

<script type="text/javascript">
  var yourDomElement = document.getElementsByClassName("first second last"));
</script>

如果您正在使用 jQuery 那么您也可以通过 (.) 运算符获得相同的 DOM:-

<script type="text/javascript">
      var yourDomElement = (".first second last");
</script>

如果你想在没有 javascript 和 jQuery 的情况下得到 DOM 然后使用这个代码:-

$dom_element_class = 'first second last';
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$results = $xpath->query("//*[@class='" . $dom_element_class . "']");

if ($results->length > 0) {
    echo $review = $results->item(0)->nodeValue;
}

这个link会有用。

test.html :

<h1 class="first second last">
    <p>Paragraph</p>
</h1>

正如我在 php 简单 html dom 解析器中所做的那样。 我不是通过使用 find 方法找到了查询的替代解决方案,但我们可以使用以下方法检查多个 类:

include "simple_html_dom.php";

$html = file_get_html('test.html');
$h1 = $html->find('h1');
foreach ($h1 as $h1) {
    $h1Class = ($h1->class);
    if($h1Class == 'first second last'){
        $item['test'] = 'success';
    }else{
        $item['test'] = 'fail';
    }
    $ar[] = $item;
}
echo "<pre>";
print_r($ar);