【问题标题】:Symfony crawler get child nodes from getted childs in foreach?Symfony爬虫从foreach中获取子节点获取子节点?
【发布时间】:2020-08-07 12:07:34
【问题描述】:

我正在与Symfony's dom crawler 合作。

XML 看起来像:

<Tours>
    <Tour id="1">
        <Termins>
            <Termin>
            ...

我有工作代码:

        $crawler = new Crawler($xmlData);

        foreach ($crawler->children() as $domElement) {

            $tourId = $domElement->getAttribute('id');
            $tours = $crawler->filter('Tours Tour[id="'.$tourId .'"] Termins')->children();

但我想找到像这样使用爬虫的方法:(要点是没有来自“顶部”的选择器,但来自元素女巫的选择器已经在 foreach 中)。

        foreach ($crawler->children() as $tour) {
            foreach($tour->first('Termins')->children() as $termin)

【问题讨论】:

    标签: php xml symfony parsing web-crawler


    【解决方案1】:

    此时,当您将iterate 置于Crawler 之上时,您将获得DOMNode 的数组。然后,您可以为该子文档创建一个新的爬虫。

    foreach ($crawler->filter('tour') as $tour) {
        $tourCrawler = new Crawler($tour);
        $tourCrawler->attr('id'); // 1...
        foreach ($tourCrawler->filter('termin') as $termin) {
            // Access nodes or create further crawlers
        } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      相关资源
      最近更新 更多