PHP Xpath获取包含特定class的div的内容

6
什么是使用xpath获取具有特定类的所有div内容的正确语法?我似乎可以获取div,但不知道如何获取它们的innerHTML。
        $url = "http://www.vanityfair.com/politics/2012/10/michael-lewis-profile-barack-obama";

    $ctx     = stream_context_create(array('http'=> array('timeout' => 10)));

    libxml_use_internal_errors(TRUE);
    $num = 0;

    if($html = @file_get_contents($url,false,$ctx)){

        $doc   = DOMDocument::loadHTML($html);
        $xpath = new DOMXPath($doc);

        foreach($xpath->query('//div[@class="page-display"]') as $div){
            $num++;
            echo "$num. ";

            //????

            echo "<br/>";
        }

        echo "<br/>FINISHED";

    }else{
        echo "FAIL";
    }

你尝试过使用 $div->nodeValue 或者 $div->textContent 吗? - Musa
1个回答

8
中没有HTML标签,所以您将获取不到任何内容。
您是指获取class="parbase cn_text"吗?
    foreach($xpath->query('//div[@class="parbase cn_text"]') as $div){
        $num++;
        echo "$num. ";

        //????
        echo $div->textContent;

        echo "<br/>";
    }

哇,我真蠢。那个可以用,但是为什么“body”类不起作用呢? - David
你是指 "body" 吗?("body[空格]") - Robbie
哦,空格也算?那真烦人。所以如果你有四个带有类名的div,分别是1. "body test" 2. "test body example" 3. "example test body" 4. "body",你需要查询 "body ", " body ", " body" 和 "body"? - David
任何与“body”混合的组合-最好使用正则表达式,如http://arr.gr/blog/2010/04/xpath-regular-expression-matching-in-php-5-3/所建议的那样。虽然没有尝试过。另一个例子:https://dev59.com/bmPVa4cB1Zd3GeqP3Cmg - Robbie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接