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 list of nodes with a CSS selector.

src/voku/helper/SimpleHtmlDom.php 1 location

@@ 326-353 (lines=28) @@
323
   *
324
   * @return SimpleHtmlDomNode|SimpleHtmlDomNode[]|SimpleHtmlDomNodeBlank
325
   */
326
  public function getElementsByTagName(string $name, $idx = null)
327
  {
328
    $nodesList = $this->node->getElementsByTagName($name);
329
330
    $elements = new SimpleHtmlDomNode();
331
332
    foreach ($nodesList as $node) {
333
      $elements[] = new self($node);
334
    }
335
336
    // return all elements
337
    if (null === $idx) {
338
      return $elements;
339
    }
340
341
    // handle negative values
342
    if ($idx < 0) {
343
      $idx = \count($elements) + $idx;
344
    }
345
346
    // return one element
347
    if (isset($elements[$idx])) {
348
      return $elements[$idx];
349
    }
350
351
    // return a blank-element
352
    return new SimpleHtmlDomNodeBlank();
353
  }
354
355
  /**
356
   * Create a new "HtmlDomParser"-object from the current context.