@@ 338-365 (lines=28) @@ | ||
335 | * |
|
336 | * @return SimpleHtmlDomNode|SimpleHtmlDom[]|SimpleHtmlDomNodeBlank |
|
337 | */ |
|
338 | public function getElementsByTagName(string $name, $idx = null) |
|
339 | { |
|
340 | $nodesList = $this->node->getElementsByTagName($name); |
|
341 | ||
342 | $elements = new SimpleHtmlDomNode(); |
|
343 | ||
344 | foreach ($nodesList as $node) { |
|
345 | $elements[] = new self($node); |
|
346 | } |
|
347 | ||
348 | // return all elements |
|
349 | if (null === $idx) { |
|
350 | return $elements; |
|
351 | } |
|
352 | ||
353 | // handle negative values |
|
354 | if ($idx < 0) { |
|
355 | $idx = \count($elements) + $idx; |
|
356 | } |
|
357 | ||
358 | // return one element |
|
359 | if (isset($elements[$idx])) { |
|
360 | return $elements[$idx]; |
|
361 | } |
|
362 | ||
363 | // return a blank-element |
|
364 | return new SimpleHtmlDomNodeBlank(); |
|
365 | } |
|
366 | ||
367 | /** |
|
368 | * Create a new "HtmlDomParser"-object from the current context. |
@@ 459-486 (lines=28) @@ | ||
456 | * |
|
457 | * @return SimpleHtmlDomNode|SimpleHtmlDomNode[]|SimpleHtmlDomNodeBlank |
|
458 | */ |
|
459 | public function getElementsByTagName(string $name, $idx = null) |
|
460 | { |
|
461 | $nodesList = $this->document->getElementsByTagName($name); |
|
462 | ||
463 | $elements = new SimpleHtmlDomNode(); |
|
464 | ||
465 | foreach ($nodesList as $node) { |
|
466 | $elements[] = new SimpleHtmlDom($node); |
|
467 | } |
|
468 | ||
469 | // return all elements |
|
470 | if (null === $idx) { |
|
471 | return $elements; |
|
472 | } |
|
473 | ||
474 | // handle negative values |
|
475 | if ($idx < 0) { |
|
476 | $idx = \count($elements) + $idx; |
|
477 | } |
|
478 | ||
479 | // return one element |
|
480 | if (isset($elements[$idx])) { |
|
481 | return $elements[$idx]; |
|
482 | } |
|
483 | ||
484 | // return a blank-element |
|
485 | return new SimpleHtmlDomNodeBlank(); |
|
486 | } |
|
487 | ||
488 | /** |
|
489 | * Find one node with a CSS selector. |