从DOM树中提取nodevalue

时间:2011-11-25 20:44:27

标签: php html parsing screen-scraping web-scraping

我希望下面的代码能够回显在配备元素中找到的字符串 这不应该有效吗?

<?

    $doc = new DOMDocument();
    $doc->loadHTML('http://website.com');

    $elements = $doc->getElementByID("equipped");

     echo $elements->nodeValue . "\n";



    ?>

1 个答案:

答案 0 :(得分:1)

使用DOMDocument::getElementById()时,我建议您将属性validateOnParse设置为true,以确保文档格式正确且方法可以正常运行。

如果节点的内容仅为文本,则可以尝试textContent属性。 nodeValue属性值可能因元素类型而异。

看起来像这样:

<?php
    $doc = new DOMDocument();
    $doc->validateOnParse = true;
    $doc->loadHTMLFile('http://website.com');
    $element = $doc->getElementById("equipped");

    if (!is_null($element)) {
        $content = $element->nodeValue;

        if (empty($content)) {
            $content = $element->textContent;
        }

        echo $content . "\n";
    }
?>

希望它有所帮助。