dongqiang1226 2017-01-12 05:00
浏览 68
已采纳

如何在使用DOMDocument时将文本内容分隔为<BR>

I have a page full of elements Im trying to parse. I want class1 and class2 as seperate text. However, class 2 exists inside class1. So if I do textContent, it retrieves all the text.

Heres the structure...

 <div class='class1'> 
     Name <br/> <span class='class2'>Other Name</span>
  </div>

If I do this...

 $dom = new DOMDocument();
 $dom->loadHTMLFile($url);
 $finder = new DomXPath($dom);
 $classname="class2";
 $nodes = $finder->query("//*[contains(@class, '$classname')]");
 foreach($nodes as $n){
     echo $n->textContent;
 }

I can get the class2 elemtn just fine. But if I do the same for class1. I get the textContent of class1 which also includes the contents of class2.

How can I extract these seperately?

  • 写回答

3条回答 默认 最新

  • dongqian5569 2017-01-12 05:27
    关注

    In your example, $n contains 5 child nodes:

    1. "Name"
    2. "<br/>"
    3. " "
    4. "<span class='class2'>Other Name</span>"
    5. " "

    The property textContent consist of the text of this node and all its descendants. To access the content only of the first child use:

    echo $n->firstChild->textContent;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据