【问题标题】:Find first div with class use simple HTML DOM使用简单的 HTML DOM 查找第一个 div
【发布时间】:2018-04-07 10:58:13
【问题描述】:

我正在使用简单的 html dom 从网站获取数据。

我的问题是当我找到一个具有指定类的 div 时,它会返回所有具有该类的 div 标签。 我只想要该类的第一个 div 中的内容。

我的代码是这样的

$html = file_get_html('myurl');
$e = $html->find("div[class=myclass]",0);
echo $e->plaintext; 

如何仅使用 myclass 获得第一个 div。 对不起我的英语不好

【问题讨论】:

    标签: php html parsing dom simple-html-dom


    【解决方案1】:

    试试这个替代方法,

    $e = $html->find("div[class=myclass]");
    echo $e[0]->plaintext;
    

    但我认为,它也应该适用于$html->find("div[class=myclass]",0); 可能是因为您使用的是旧版本的simple_html_dom

    对于我来说,我只需要将 $html = file_get_html(myurl); 更改为 $html = str_get_html(file_get_contents(myurl)); 就可以使用 php 7simple_html_dom 版本

    【讨论】:

    • ty,我试过了,但结果还是一样。但是,当我尝试$e = $html->find("div[class=myclass]",-1); 时,它会返回 myclass 的最后一个 div。
    • 可以分享一下网址和类名吗?我认为当您尝试定位的元素与其父元素具有相同的类名时,可能会发生这种情况。
    • 网址:latimes.com/sports/… 类名:trb_ar_page
    • 我认为它返回了它应该返回的内容,我从第一个 trb_ar_page 类中获取了所有内容。 jpst.it/16FPZ
    • 我再次检查,这 2 个具有 trb_ar_page 类的元素不是父子元素,它们之间有 1 个不同的东西,一个有 data-content-page="1",另一个有 data-content -page="2",我可以用这个做点什么吗?
    猜你喜欢
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    相关资源
    最近更新 更多