Code Duplication    Length = 27-31 lines in 2 locations

src/voku/helper/SimpleXmlDom.php 1 location

@@ 513-543 (lines=31) @@
510
     *
511
     * @return SimpleXmlDomInterface|SimpleXmlDomInterface[]|SimpleXmlDomNodeInterface<SimpleXmlDomInterface>
512
     */
513
    public function getElementsByTagName(string $name, $idx = null)
514
    {
515
        if ($this->node instanceof \DOMElement) {
516
            $nodesList = $this->node->getElementsByTagName($name);
517
        } else {
518
            $nodesList = [];
519
        }
520
521
        $elements = new SimpleXmlDomNode();
522
523
        foreach ($nodesList as $node) {
524
            $elements[] = new static($node);
525
        }
526
527
        // return all elements
528
        if ($idx === null) {
529
            if (\count($elements) === 0) {
530
                return new SimpleXmlDomNodeBlank();
531
            }
532
533
            return $elements;
534
        }
535
536
        // handle negative values
537
        if ($idx < 0) {
538
            $idx = \count($elements) + $idx;
539
        }
540
541
        // return one element
542
        return $elements[$idx] ?? new SimpleXmlDomBlank();
543
    }
544
545
    /**
546
     * @return \DOMNode

src/voku/helper/XmlDomParser.php 1 location

@@ 366-392 (lines=27) @@
363
     *
364
     * @return SimpleXmlDomInterface|SimpleXmlDomInterface[]|SimpleXmlDomNodeInterface<SimpleXmlDomInterface>
365
     */
366
    public function getElementsByTagName(string $name, $idx = null)
367
    {
368
        $nodesList = $this->document->getElementsByTagName($name);
369
370
        $elements = new SimpleXmlDomNode();
371
372
        foreach ($nodesList as $node) {
373
            $elements[] = new SimpleXmlDom($node);
374
        }
375
376
        // return all elements
377
        if ($idx === null) {
378
            if (\count($elements) === 0) {
379
                return new SimpleXmlDomNodeBlank();
380
            }
381
382
            return $elements;
383
        }
384
385
        // handle negative values
386
        if ($idx < 0) {
387
            $idx = \count($elements) + $idx;
388
        }
389
390
        // return one element
391
        return $elements[$idx] ?? new SimpleXmlDomNodeBlank();
392
    }
393
394
    /**
395
     * Get dom node's outer html.