【问题标题】:How to select second element between multiple identical classname?如何在多个相同的类名之间选择第二个元素?
【发布时间】:2016-05-16 07:08:02
【问题描述】:

我有这样的结构:

<div class="test">
    <span>one</span>
</div>

<div class="test">
    <span>two</span>
</div>

<div class="test">
    <span>three</span>
</div>

这是我的代码:

foreach($html->find('div[class=test]') as $article) {
    echo $type .= $article->find('span',0)->plaintext."<br>";
}

这是当前结果:

one
two
three

这是预期的结果:

two

我该怎么做?


注意:我使用this PHP 库。

【问题讨论】:

    标签: php html parsing dom


    【解决方案1】:
    $data = $html->find('div[class=test]', 1);
    echo $type .= $data->find('span',0)->plaintext."<br>";
    

    这应该打印你想要的,因为 1 是要选择的第二个 div 元素(从 0 开始,所以第一个 = 0,第二个 = 1)。

    【讨论】:

      【解决方案2】:

      你可能想看看我的包裹PHPHTMLQuery。

      使用 composer 安装后,你可以这样做:

      $content= '<div class="test">'.
          '<span>one</span>'.
      '</div>'.
      '<div class="test">'.
          '<span>two</span>'
      '</div>'.
      '<div class="test">'.
          '<span>three</span>'.
      '</div>';
      
      $document = new AbdelilahLbardi\PHPHTMLQuery\Getter($content);
      
      $elements = $document->withTag('div')
                           ->withClass('test')
                           ->select();
      
      foreach($elements as $element){
          var_dump($element);
      }
      

      【讨论】:

        猜你喜欢
        • 2017-09-22
        • 1970-01-01
        • 2017-06-10
        • 2022-10-31
        • 2013-12-13
        • 2019-11-26
        • 1970-01-01
        • 2011-02-14
        • 1970-01-01
        相关资源
        最近更新 更多