【问题标题】:how to parse a HTML page with PHP5 and DOM? [duplicate]如何使用 PHP5 和 DOM 解析 HTML 页面? [复制]
【发布时间】:2010-09-15 21:34:14
【问题描述】:

可能重复:
How to parse and process HTML with PHP?

我正在编写一段代码,该代码应该获取给定 html 文档的特定 html 标记的内容。

$html = "<html>..........truncated.........<div>blablabla<br />xy</div>.....";
$dom = new DomDocument();
$dom->loadHTML($html);

$divs = $dom->getElementsByTagName('div');

echo $divs->item(0)->nodeValue.'<br>';

html 代码只是一个示例,但显示了我遇到的问题:我想获取此 DIV 的内容,并且我需要保留内部标签! nodeValue(以及“textContent”)的作用是返回正确节点with all inner tags strippedhttp://docs.php.net/manual/en/class.domnode.php)的内容

我不知道如何获得正确的atm ...我需要的是相当于javascripts“innerHTML”左右...但我找不到这样的方法:(

我怎样才能做到这一点?

【问题讨论】:

    标签: php dom html-parsing


    【解决方案1】:

    这个解决方案看起来很有希望:

    http://www.linked.com.mt/blog/code/php/php-domnode-tostring-xml/

    $temp_doc = new DOMDocument('1.0', 'UTF-8');
    $temp_node = $temp_doc->importNode($myDomNode, TRUE);
    $temp_doc->appendChild($temp_node);
    $my_node_as_string = $temp_doc->saveHTML();
    

    【讨论】:

      【解决方案2】:

      DOM 只擅长解析格式良好的和 100% 有效的 XML,所以除非你使用 100% 有效的 XHTML,否则它会失败。

      您要使用的是PHP Simple HTML DOM Parser 库。

      该网站上有很多教程可以帮助您满足您的需求。

      【讨论】:

      • 当您使用 DOMDocument::loadHTMLDOMDocument::loadHTMLFile 加载它时,DOM 可以很好地解析真实世界的 HTML。这将利用 libxml 的 HTML Parser 模块。
      • 根据我的经验,这充其量是不确定的。不过,我上次尝试是在 2009 年。也许它有所改进。
      【解决方案3】:

      你见过 phpQuery 吗?对于你想要完成的事情来说可能太多了,但值得一看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-28
        • 2015-05-03
        • 2013-07-08
        • 2011-11-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多