dongwuxie5112 2014-05-16 18:11
浏览 69
已采纳

PHP从div获得第一个孩子

In below HTML Code, I want to get the content of p tag

Example

<div class="body" style="text-align: justify;padding: 10px;">
   <p style="text-align: justify;" dir="RTL">
      ...............
   </p>

   TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
</div>

My current code is :

$dom = new DOMDocument;
$dom->loadHTML($content);

echo $dom->getElementsByTagName('div')->item(0)->childNodes;

Why this code isn't correct and how to resolve this issue.

  • 写回答

1条回答 默认 最新

  • donglin6109 2014-05-17 02:37
    关注

    Interesting:

    If you have this:

    <?php
    $content ='
    <div class="body" style="text-align: justify;padding: 10px;">
        <p>this is a paragraph</p>
        TEST TEST TEST TEST 
    </div>';
    
    $dom = new DOMDocument;
    $dom->loadHTML($content);
    
    $firstChildOfDiv = $dom->getElementsByTagName('div')->item(0)->childNodes->item(0);
    $value = $firstChildOfDiv->nodeValue;
    echo "<PRE>",var_dump($value),"</PRE>";
    

    Your output will be:

    string(1) " "

    However, if you have this:

    <?php
    $content ='
    <div class="body" style="text-align: justify;padding: 10px;"><p>this is a paragraph</p> TEST TEST TEST TEST </div>';
    
    $dom = new DOMDocument;
    $dom->loadHTML($content);
    
    $firstChildOfDiv = $dom->getElementsByTagName('div')->item(0)->childNodes->item(0);
    $value = $firstChildOfDiv->nodeValue;
    echo "<PRE>",var_dump($value),"</PRE>";
    

    Your output will be as expected:

     string(19) "this is a paragraph"
    

    Seems like something weird is happening with the whitespace

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装