dongqufi82315 2019-05-05 04:40
浏览 78
已采纳

简单的HTML Dom - 在div之后找到文本

I need to extract the text in After divs using Simple HTML Dom PHP library. I have tried next_sibling() to get text but it's dont work.

<div class="one">one<div>
<div class="data">mydata</div>
get this text
<div class="two">two</div>

My code:

$res = $div->find('div[class="data]',0);
if($res->plaintext == 'mydata'){
    echo $res->next_sibling()->plaintext  ;
}
  • 写回答

3条回答 默认 最新

  • douchunsui2395 2019-05-05 05:31
    关注

    Welcome!

    It seems you want to parse an HTML using DOMDocument method. If that might be the case, you might instantiate a new object, maybe similar to:

    $dir = '<div class="one">one<div>
    <div class="data">mydata</div>
    get this text
    <div class="two">two</div>';
    
    $dom = new DOMDocument();
    $dom->loadHTML($dir);
    $xpath = new DOMXpath($dom);
    
    $res = $xpath->document->documentElement->textContent;
    
    $textNodes = explode(PHP_EOL, $res);
    foreach ($textNodes as $key => $text) {
        if ($text == 'mydata') {
            echo $textNodes[$key + 1];
            break;
        }
    }
    

    Then, you can do the rest of anything that you wish to do with document.

    Output:

    get this text
    

    Document

    If you var_dump($xpath->document->documentElement);, you can find out how you might want to use attributes of documentElement object:

    twoobject(DOMElement)#3 (18) {
      ["tagName"]=>
      string(4) "html"
      ["schemaTypeInfo"]=>
      NULL
      ["nodeName"]=>
      string(4) "html"
      ["nodeValue"]=>
      string(20) "one
    mydata
    two
    three"
      ["nodeType"]=>
      int(1)
      ["parentNode"]=>
      string(22) "(object value omitted)"
      ["childNodes"]=>
      string(22) "(object value omitted)"
      ["firstChild"]=>
      string(22) "(object value omitted)"
      ["lastChild"]=>
      string(22) "(object value omitted)"
      ["previousSibling"]=>
      string(22) "(object value omitted)"
      ["nextSibling"]=>
      NULL
      ["attributes"]=>
      string(22) "(object value omitted)"
      ["ownerDocument"]=>
      string(22) "(object value omitted)"
      ["namespaceURI"]=>
      NULL
      ["prefix"]=>
      string(0) ""
      ["localName"]=>
      string(4) "html"
      ["baseURI"]=>
      NULL
      ["textContent"]=>
      string(20) "one
    mydata
    two
    three"
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)