@@ 553-575 (lines=23) @@ | ||
550 | * |
|
551 | * @return SimpleHtmlDom|SimpleHtmlDom[]|SimpleHtmlDomNode|SimpleHtmlDomNodeBlank |
|
552 | */ |
|
553 | public function getElementsByTagName(string $name, $idx = null) |
|
554 | { |
|
555 | $nodesList = $this->document->getElementsByTagName($name); |
|
556 | ||
557 | $elements = new SimpleHtmlDomNode(); |
|
558 | ||
559 | foreach ($nodesList as $node) { |
|
560 | $elements[] = new SimpleHtmlDom($node); |
|
561 | } |
|
562 | ||
563 | // return all elements |
|
564 | if ($idx === null) { |
|
565 | return $elements; |
|
566 | } |
|
567 | ||
568 | // handle negative values |
|
569 | if ($idx < 0) { |
|
570 | $idx = \count($elements) + $idx; |
|
571 | } |
|
572 | ||
573 | // return one element |
|
574 | return $elements[$idx] ?? new SimpleHtmlDomNodeBlank(); |
|
575 | } |
|
576 | ||
577 | /** |
|
578 | * Find one node with a CSS selector. |
@@ 329-351 (lines=23) @@ | ||
326 | * |
|
327 | * @return SimpleHtmlDom|SimpleHtmlDom[]|SimpleHtmlDomNode|SimpleHtmlDomNodeBlank |
|
328 | */ |
|
329 | public function getElementsByTagName(string $name, $idx = null) |
|
330 | { |
|
331 | $nodesList = $this->node->getElementsByTagName($name); |
|
332 | ||
333 | $elements = new SimpleHtmlDomNode(); |
|
334 | ||
335 | foreach ($nodesList as $node) { |
|
336 | $elements[] = new self($node); |
|
337 | } |
|
338 | ||
339 | // return all elements |
|
340 | if ($idx === null) { |
|
341 | return $elements; |
|
342 | } |
|
343 | ||
344 | // handle negative values |
|
345 | if ($idx < 0) { |
|
346 | $idx = \count($elements) + $idx; |
|
347 | } |
|
348 | ||
349 | // return one element |
|
350 | return $elements[$idx] ?? new SimpleHtmlDomNodeBlank(); |
|
351 | } |
|
352 | ||
353 | /** |
|
354 | * Create a new "HtmlDomParser"-object from the current context. |