drgweamoi473182981 2015-07-18 19:46
浏览 20
已采纳

使用PHP设置从页面获取div内容的开始和停止

file.html

<div class="a">
    <div class="ac"> ssssssssss </div>
    <div class="aa"> hhhhhhh </div>
    <p> dddd </p>
    <p class="ss">dddddddd </p>
    <span> ssssssss </span>
    <div class="sa"> <p> sss </p></div>
    <div class="ssa"> <p> sss </p></div>
    <div class="sa"> <span> sss </span></div>

    <!-- stop all if it comes to this div dont show anything under -->
    <div class="stop-here"> </div>
    <div class="sssa"> <p> sss </p></div>
    <div class="ssssa"> <p> sss </p></div>

</div>

i have a file.html and i want to get all tags inside a div, and i want it to stop getting contents once it sees a div with class "stop-here"

$html = new DOMDocument();
@$html->loadHtmlFile('file.htm');
$xpath = new DOMXPath( $html );
$nodelistfulldesc = $xpath->query( "//div[@class='a']" );

foreach ($nodelistfulldesc as $fdn)
{
    $m .= $fdn->nodeValue;
}

this is the php am using to get all content, but cant stop it.

  • 写回答

1条回答 默认 最新

  • doukui9491 2015-07-18 19:54
    关注

    You can use such xpath to take all nodes in div[@class='a'] before div[@class="stop-here"]

    `//div[@class='a']/*[following::div[@class="stop-here"]]`
    

    update it works very easy

    div[@class='a']/* takes all children of the node

    [following::div[@class="stop-here"]] selects among them those for which div[@class="stop-here"] is ahead

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

报告相同问题?

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路