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