【问题标题】:PHP DomCrawler ,Get child node based on a specific parentPHP DomCrawler ,根据特定父节点获取子节点
【发布时间】:2015-07-31 11:47:00
【问题描述】:

根据特定的父节点获取子节点

function(Crawler $node,){
    $node->filter('this>ul');
}

我怎样才能得到一个$node children,它不像CSS选择器#parent>child那样包含孙子?

【问题讨论】:

    标签: php symfony web-crawler domcrawler


    【解决方案1】:
    1. 您正在使用 CSS 选择器。
    2. CSS 中没有任何 thisparent 选择器。
    3. 你应该只使用$node->filter('>ul');

    【讨论】:

    • 我试过了,不行;错误:预期的选择器,但 " at 0> 找到。
    • 我发现filterfilterXPath 只返回第一次出现。因此,即使您有 ul 和后代子代,也没关系,因为您只会得到第一个,即父代。如果你只想匹配空的ul,你必须使用ul:empty选择器。
    • filter:使用 CSS 选择器过滤节点列表。
    • 虽然问题没有解决,但还是谢谢您;也许我应该学习 XPath
    • @michail_w 我发现过滤器会返回所有出现的事件。我一直只需要遍历它们。前任。 $items_out = $crawler->filter('span.item_title'); $items_out->each(function ($node) { echo '<pre>'; print $node->text()."\n"; echo '</pre>'; });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多