Code Duplication    Length = 28-28 lines in 2 locations

src/voku/helper/SimpleHtmlDom.php 1 location

@@ 338-365 (lines=28) @@
335
   *
336
   * @return SimpleHtmlDomNode|SimpleHtmlDom[]|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.

src/voku/helper/HtmlDomParser.php 1 location

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