【问题标题】:Getting all elements between html tag in php在php中获取html标签之间的所有元素
【发布时间】:2017-07-26 04:17:11
【问题描述】:

我推荐了这个question

但是,我想迭代并获取 html 标签之间的所有元素

这就是我所做的

$homepage = file_get_contents('http://www.example.com');

这将打印以下内容

<html>
<body>
<div class = "alpha">hey</div>
<div class = "beta">one</div>
<div class = "beta">two</div>
</body>
</html>

在这里,我需要使用 beta 类获取所有元素。

我该怎么做?

这是我目前尝试过的代码

$dom = new DOMDocument();
$dom->loadHTML($homepage);
foreach($dom->getAllElements as $element ){
    if(!$element->hasClass('beta')){
       echo $element;
    } 
}

但上面写着DOMDocument::loadHTML(): Tag nav invalid in Entity,

【问题讨论】:

    标签: php html dom


    【解决方案1】:

    试试这个

    <?php
    
    $dom = new DOMDocument();
    libxml_use_internal_errors(true);
    $dom->loadHTML("<html>
    <body>
    <div class = 'alpha'>hey</div>
    <div class = 'beta'>one</div>
    <div class = 'beta'>two</div>
    </body>
    </html>");
    libxml_clear_errors();
    
    $classname="beta";
    $finder = new DomXPath($dom);
    $spaner = $finder->query("//*[contains(@class, '$classname')]");
    
    foreach($spaner as $element ){
     print_r($element);
    }
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多