@@ 339-366 (lines=28) @@ | ||
336 | * |
|
337 | * @return SimpleHtmlDomNode|SimpleHtmlDom[]|SimpleHtmlDom|SimpleHtmlDomNodeBlank |
|
338 | */ |
|
339 | public function getElementsByTagName(string $name, $idx = null) |
|
340 | { |
|
341 | $nodesList = $this->node->getElementsByTagName($name); |
|
342 | ||
343 | $elements = new SimpleHtmlDomNode(); |
|
344 | ||
345 | foreach ($nodesList as $node) { |
|
346 | $elements[] = new self($node); |
|
347 | } |
|
348 | ||
349 | // return all elements |
|
350 | if (null === $idx) { |
|
351 | return $elements; |
|
352 | } |
|
353 | ||
354 | // handle negative values |
|
355 | if ($idx < 0) { |
|
356 | $idx = \count($elements) + $idx; |
|
357 | } |
|
358 | ||
359 | // return one element |
|
360 | if (isset($elements[$idx])) { |
|
361 | return $elements[$idx]; |
|
362 | } |
|
363 | ||
364 | // return a blank-element |
|
365 | return new SimpleHtmlDomNodeBlank(); |
|
366 | } |
|
367 | ||
368 | /** |
|
369 | * Create a new "HtmlDomParser"-object from the current context. |
@@ 535-562 (lines=28) @@ | ||
532 | * |
|
533 | * @return SimpleHtmlDomNode|SimpleHtmlDom[]|SimpleHtmlDom|SimpleHtmlDomNodeBlank |
|
534 | */ |
|
535 | public function getElementsByTagName(string $name, $idx = null) { |
|
536 | $nodesList = $this->document->getElementsByTagName($name); |
|
537 | ||
538 | $elements = new SimpleHtmlDomNode(); |
|
539 | ||
540 | foreach ($nodesList as $node) { |
|
541 | $elements[] = new SimpleHtmlDom($node); |
|
542 | } |
|
543 | ||
544 | // return all elements |
|
545 | if (null === $idx) { |
|
546 | return $elements; |
|
547 | } |
|
548 | ||
549 | // handle negative values |
|
550 | if ($idx < 0) { |
|
551 | $idx = \count($elements) + $idx; |
|
552 | } |
|
553 | ||
554 | // return one element |
|
555 | if (isset($elements[$idx])) { |
|
556 | return $elements[$idx]; |
|
557 | } |
|
558 | ||
559 | // return a blank-element |
|
560 | return new SimpleHtmlDomNodeBlank(); |
|
561 | } |
|
562 | ||
563 | /** |
|
564 | * Find one node with a CSS selector. |
|
565 | * |