0

也许这是一个愚蠢的问题,但我需要从选定的 html 页面中获取一个包含所有 HTML 节点的对象。我必须使所有节点都可选择,尤其是开始标签。如果有人知道TYPO3 TemplaVoila的模板引擎;我认为这最适合它,但我想自己重建它,但我不知道如何将所有打开的标签变成一个对象。

如果有人可以推送一些详细信息,实际上,我正在像这样使用 domCrawler 进行测试,但这有点令人困惑......

 foreach ($crawler as $domElement) {
        foreach ($domElement as $test){
            var_dump($test->nodeName);
        }
        var_dump($domElement);
        $html .= $domElement->ownerDocument->saveHTML($domElement);
    }

因此,经过一番研究,我取消了 HTMLPageDom 并像这样使用它:

 $css= new HtmlPage();
    $css = new HtmlPage($head);
    $cssNew = $css->filter('link')->each(function ($node) {
        $node= $node->attr('href');
        return $node;
    });

所以这或多或少有效,但我认为我错过了一些东西。如何将数据附加到 $node->attr('href)?和:

$node->attr('href')->append('data in front of linkuri');
4

2 回答 2

0

解决方案:

好吧,至少我想得太奇怪了:)

就是这么简单:

$body->filter('img')->setAttribute('src', $this->absPath.$bodySource->filter('img')->attr('src') );
于 2015-12-02T14:43:00.467 回答
0

您可以通过以下方式尝试:

/.../

$values = $crawler->filterXpath('//body')->each(function ($node) {
    return $node->html();
});

/.../
于 2015-11-27T08:26:51.933 回答