@@ 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. |
@@ 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. |