使用 DomXPath 查找并提取某些 class 部分的内容

Find and extract content of division of certain class using DomXPath

我正在尝试将远程页面的特定部分的内容提取并保存到 PHP 字符串(或数组)中。该特定部分如下所示:

<section class="intro">
        <div class="container">
            <h1>Student Club</h1>
            <h2>Subtitle</h2>
            <p>Lore ipsum paragraph.</p>
        </div>
</section>

并且由于我无法使用 class 容器缩小范围,因为同一页面上还有 class "container" 的其他几个部分,并且因为 class 的唯一部分=37=] "intro", 我用下面的代码找到合适的除法:

$doc = new DOMDocument;
$doc->preserveWhiteSpace = FALSE;
@$doc->loadHTMLFile("https://www.remotesite.tld/remotepage.html");
$finder = new DomXPath($doc);
$intro = $finder->query("//*[contains(@class, 'intro')]");

此时,我遇到了一个问题 - 无法将 $intro 的内容提取为 PHP 字符串。

进一步尝试以下代码

foreach ($intro as $item) {
                    $string = $item->nodeValue;
                    echo $string;
                }

仅提供文本值,所有标签都被剥离,我确实需要保留所有这些 div、h1 和 h2 以及 p 标签以供进一步操作需要。

正在尝试:

foreach ($intro->attributes as $attr) {
                $name = $attr->nodeName;
                $value = $attr->nodeValue;
                echo $name;
                echo $value;
            }

给出错误:

Notice: Undefined property: DOMNodeList::$attributes in 

那么我怎样才能提取找到的 DOM 个元素的完整 HTML 代码呢?

我知道我是如此接近......我只需要做:

            foreach ($intro as $item) {
                $h1= $item->getElementsByTagName('h1');
                $h2= $item->getElementsByTagName('h2');
                $p= $item->getElementsByTagName('p');
            }