Code Duplication    Length = 27-31 lines in 2 locations

src/voku/helper/HtmlDomParser.php 1 location

@@ 637-663 (lines=27) @@
634
     *
635
     * @return SimpleHtmlDomInterface|SimpleHtmlDomInterface[]|SimpleHtmlDomNodeInterface
636
     */
637
    public function getElementsByTagName(string $name, $idx = null)
638
    {
639
        $nodesList = $this->document->getElementsByTagName($name);
640
641
        $elements = new SimpleHtmlDomNode();
642
643
        foreach ($nodesList as $node) {
644
            $elements[] = new SimpleHtmlDom($node);
645
        }
646
647
        // return all elements
648
        if ($idx === null) {
649
            if (\count($elements) === 0) {
650
                return new SimpleHtmlDomNodeBlank();
651
            }
652
653
            return $elements;
654
        }
655
656
        // handle negative values
657
        if ($idx < 0) {
658
            $idx = \count($elements) + $idx;
659
        }
660
661
        // return one element
662
        return $elements[$idx] ?? new SimpleHtmlDomNodeBlank();
663
    }
664
665
    /**
666
     * Find one node with a CSS selector.

src/voku/helper/SimpleHtmlDom.php 1 location

@@ 218-248 (lines=31) @@
215
     *
216
     * @return SimpleHtmlDomInterface|SimpleHtmlDomInterface[]|SimpleHtmlDomNodeInterface
217
     */
218
    public function getElementsByTagName(string $name, $idx = null)
219
    {
220
        if ($this->node instanceof \DOMElement) {
221
            $nodesList = $this->node->getElementsByTagName($name);
222
        } else {
223
            $nodesList = [];
224
        }
225
226
        $elements = new SimpleHtmlDomNode();
227
228
        foreach ($nodesList as $node) {
229
            $elements[] = new static($node);
230
        }
231
232
        // return all elements
233
        if ($idx === null) {
234
            if (\count($elements) === 0) {
235
                return new SimpleHtmlDomNodeBlank();
236
            }
237
238
            return $elements;
239
        }
240
241
        // handle negative values
242
        if ($idx < 0) {
243
            $idx = \count($elements) + $idx;
244
        }
245
246
        // return one element
247
        return $elements[$idx] ?? new SimpleHtmlDomBlank();
248
    }
249
250
    /**
251
     * Create a new "HtmlDomParser"-object from the current context.