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

@@ 686-712 (lines=27) @@
683
     *
684
     * @return SimpleHtmlDomInterface|SimpleHtmlDomInterface[]|SimpleHtmlDomNodeInterface
685
     */
686
    public function getElementsByTagName(string $name, $idx = null)
687
    {
688
        $nodesList = $this->document->getElementsByTagName($name);
689
690
        $elements = new SimpleHtmlDomNode();
691
692
        foreach ($nodesList as $node) {
693
            $elements[] = new SimpleHtmlDom($node);
694
        }
695
696
        // return all elements
697
        if ($idx === null) {
698
            if (\count($elements) === 0) {
699
                return new SimpleHtmlDomNodeBlank();
700
            }
701
702
            return $elements;
703
        }
704
705
        // handle negative values
706
        if ($idx < 0) {
707
            $idx = \count($elements) + $idx;
708
        }
709
710
        // return one element
711
        return $elements[$idx] ?? new SimpleHtmlDomNodeBlank();
712
    }
713
714
    /**
715
     * Get the encoding to use.