Code Duplication    Length = 27-31 lines in 2 locations

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.

src/voku/helper/HtmlDomParser.php 1 location

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