dongzhan8620 2012-01-10 16:09
浏览 17
已采纳

使用php Dom删除id的段落

I'm trying to find paragraphs with the id "test" and remove them from a html string, I've tried using php Dom Document but the html I'm searching is badly formed and I get errors

$caption = "blah blah<p id ='test'>Test message</p>";
$doc = new DOMDocument();
$doc->loadHTMLFile($caption);
$xmessage = $doc->getElementById('test');

returns Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Unexpected end tag : br i

Is there a way to suppress the warnings? Thanks

  • 写回答

4条回答 默认 最新

  • duanbozhong9689 2012-01-10 16:30
    关注

    You can use following code to remove a para with id='test':

    $caption = "blah blah<p id='test'>Test message</p><p id='foo'>Foo Bar</p>";
    $doc = new DOMDocument();
    $doc->loadHTML($caption);
    $xpath = new DOMXPath($doc);
    $nlist = $xpath->query("//p[@id='test']");
    $node = $nlist->item(0);
    echo "Para: [" . $node->nodeValue . "]
    ";
    $node->parentNode->removeChild($node);
    echo "Remaining: [" . $doc->saveHTML() . "]
    ";
    

    OUTPUT:

    Para: [Test message]
    Remaining: [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
    <html><body>
    <p>blah blah</p>
    <p id="foo">Foo Bar</p>
    </body></html>
    ]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)