Code Duplication    Length = 28-28 lines in 2 locations

src/voku/helper/HtmlDomParser.php 1 location

@@ 465-492 (lines=28) @@
462
   *
463
   * @return SimpleHtmlDomNode|SimpleHtmlDomNode[]|SimpleHtmlDomNodeBlank
464
   */
465
  public function getElementsByTagName(string $name, $idx = null)
466
  {
467
    $nodesList = $this->document->getElementsByTagName($name);
468
469
    $elements = new SimpleHtmlDomNode();
470
471
    foreach ($nodesList as $node) {
472
      $elements[] = new SimpleHtmlDom($node);
473
    }
474
475
    // return all elements
476
    if (null === $idx) {
477
      return $elements;
478
    }
479
480
    // handle negative values
481
    if ($idx < 0) {
482
      $idx = \count($elements) + $idx;
483
    }
484
485
    // return one element
486
    if (isset($elements[$idx])) {
487
      return $elements[$idx];
488
    }
489
490
    // return a blank-element
491
    return new SimpleHtmlDomNodeBlank();
492
  }
493
494
  /**
495
   * Find one node with a CSS selector.

src/voku/helper/SimpleHtmlDom.php 1 location

@@ 338-365 (lines=28) @@
335
   *
336
   * @return SimpleHtmlDomNode|SimpleHtmlDomNode[]|SimpleHtmlDomNodeBlank
337
   */
338
  public function getElementsByTagName(string $name, $idx = null)
339
  {
340
    $nodesList = $this->node->getElementsByTagName($name);
341
342
    $elements = new SimpleHtmlDomNode();
343
344
    foreach ($nodesList as $node) {
345
      $elements[] = new self($node);
346
    }
347
348
    // return all elements
349
    if (null === $idx) {
350
      return $elements;
351
    }
352
353
    // handle negative values
354
    if ($idx < 0) {
355
      $idx = \count($elements) + $idx;
356
    }
357
358
    // return one element
359
    if (isset($elements[$idx])) {
360
      return $elements[$idx];
361
    }
362
363
    // return a blank-element
364
    return new SimpleHtmlDomNodeBlank();
365
  }
366
367
  /**
368
   * Create a new "HtmlDomParser"-object from the current context.