@@ 348-370 (lines=23) @@ | ||
345 | * |
|
346 | * @return SimpleHtmlDom|SimpleHtmlDom[]|SimpleHtmlDomNode|SimpleHtmlDomNodeBlank |
|
347 | */ |
|
348 | public function getElementsByTagName(string $name, $idx = null) |
|
349 | { |
|
350 | $nodesList = $this->node->getElementsByTagName($name); |
|
351 | ||
352 | $elements = new SimpleHtmlDomNode(); |
|
353 | ||
354 | foreach ($nodesList as $node) { |
|
355 | $elements[] = new self($node); |
|
356 | } |
|
357 | ||
358 | // return all elements |
|
359 | if ($idx === null) { |
|
360 | return $elements; |
|
361 | } |
|
362 | ||
363 | // handle negative values |
|
364 | if ($idx < 0) { |
|
365 | $idx = \count($elements) + $idx; |
|
366 | } |
|
367 | ||
368 | // return one element |
|
369 | return $elements[$idx] ?? new SimpleHtmlDomNodeBlank(); |
|
370 | } |
|
371 | ||
372 | /** |
|
373 | * Create a new "HtmlDomParser"-object from the current context. |
@@ 589-611 (lines=23) @@ | ||
586 | * |
|
587 | * @return SimpleHtmlDom|SimpleHtmlDom[]|SimpleHtmlDomNode|SimpleHtmlDomNodeBlank |
|
588 | */ |
|
589 | public function getElementsByTagName(string $name, $idx = null) |
|
590 | { |
|
591 | $nodesList = $this->document->getElementsByTagName($name); |
|
592 | ||
593 | $elements = new SimpleHtmlDomNode(); |
|
594 | ||
595 | foreach ($nodesList as $node) { |
|
596 | $elements[] = new SimpleHtmlDom($node); |
|
597 | } |
|
598 | ||
599 | // return all elements |
|
600 | if ($idx === null) { |
|
601 | return $elements; |
|
602 | } |
|
603 | ||
604 | // handle negative values |
|
605 | if ($idx < 0) { |
|
606 | $idx = \count($elements) + $idx; |
|
607 | } |
|
608 | ||
609 | // return one element |
|
610 | return $elements[$idx] ?? new SimpleHtmlDomNodeBlank(); |
|
611 | } |
|
612 | ||
613 | /** |
|
614 | * Find one node with a CSS selector. |