使用DomXPath查找并提取某些类的除法内容

时间:2016-12-20 23:42:44

标签: dom domxpath

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

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

因为我不能使用类容器缩小范围,因为类的其他几个部分&#34;容器&#34;在同一页面上,因为有一个类#34; intro&#34;的唯一部分,我使用以下代码来找到正确的部门:

$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代码呢?

1 个答案:

答案 0 :(得分:0)

我知道我太近了......我只是需要这样做:

// bar3.js
const add      = require("./foo3").add
const multiply = require("./foo3").multiply
//...