【问题标题】:Can I get siblings with PHP's DOMDocument?我可以使用 PHP 的 DOMDocument 获得兄弟姐妹吗?
【发布时间】:2010-12-15 08:24:06
【问题描述】:

我在 PHP 的 DOMDocument 中获得了一些 h3 引用。

$dom = new DOMDocument();

$dom->loadHtml($content);

$h3s = $dom->getElementsByTagName('h3');

foreach($h3s as $h3) {

    var_dump($h3->nodeValue);

}

我需要获取h3s 之后的下一个元素。在这种情况下,它将是直到下一个 h3 或文档结尾的所有元素。

它很容易使用正则表达式,但我不想在这里使用它来解析 HTML。

作为参考,那个正则表达式是……

preg_match_all('/<h3>([^<]+)<\/h3>(.*?)(<h3|$)/', $content, $matches);

(这是脆弱的,因此需要正确解析)。

那么我如何使用 DOMDOcument 从上面的正则表达式中获得我期望在$matches 中的数据?

我检查了 documentation,但找不到 JavaScript 的 nextSibling 属性的等效项。

【问题讨论】:

    标签: php html domdocument


    【解决方案1】:

    $h3-&gt;nextSibling$h3-&gt;previousSibling 是您要查找的内容。

    getElementsByTagName 返回一个DOMNodeList,当您对其进行迭代时,它包含DOMNode 元素。

    http://www.php.net/manual/en/class.domnode.php

    【讨论】:

    • +1 在 PHP 手册中检查给定类扩展了什么类很重要。
    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 2020-08-15
    • 1970-01-01
    相关资源
    最近更新 更多