| @@ 218-248 (lines=31) @@ | ||
| 215 | * |
|
| 216 | * @return SimpleHtmlDomInterface|SimpleHtmlDomInterface[]|SimpleHtmlDomNodeInterface |
|
| 217 | */ |
|
| 218 | public function getElementsByTagName(string $name, $idx = null) |
|
| 219 | { |
|
| 220 | if ($this->node instanceof \DOMElement) { |
|
| 221 | $nodesList = $this->node->getElementsByTagName($name); |
|
| 222 | } else { |
|
| 223 | $nodesList = []; |
|
| 224 | } |
|
| 225 | ||
| 226 | $elements = new SimpleHtmlDomNode(); |
|
| 227 | ||
| 228 | foreach ($nodesList as $node) { |
|
| 229 | $elements[] = new static($node); |
|
| 230 | } |
|
| 231 | ||
| 232 | // return all elements |
|
| 233 | if ($idx === null) { |
|
| 234 | if (\count($elements) === 0) { |
|
| 235 | return new SimpleHtmlDomNodeBlank(); |
|
| 236 | } |
|
| 237 | ||
| 238 | return $elements; |
|
| 239 | } |
|
| 240 | ||
| 241 | // handle negative values |
|
| 242 | if ($idx < 0) { |
|
| 243 | $idx = \count($elements) + $idx; |
|
| 244 | } |
|
| 245 | ||
| 246 | // return one element |
|
| 247 | return $elements[$idx] ?? new SimpleHtmlDomBlank(); |
|
| 248 | } |
|
| 249 | ||
| 250 | /** |
|
| 251 | * Create a new "HtmlDomParser"-object from the current context. |
|
| @@ 686-712 (lines=27) @@ | ||
| 683 | * |
|
| 684 | * @return SimpleHtmlDomInterface|SimpleHtmlDomInterface[]|SimpleHtmlDomNodeInterface |
|
| 685 | */ |
|
| 686 | public function getElementsByTagName(string $name, $idx = null) |
|
| 687 | { |
|
| 688 | $nodesList = $this->document->getElementsByTagName($name); |
|
| 689 | ||
| 690 | $elements = new SimpleHtmlDomNode(); |
|
| 691 | ||
| 692 | foreach ($nodesList as $node) { |
|
| 693 | $elements[] = new SimpleHtmlDom($node); |
|
| 694 | } |
|
| 695 | ||
| 696 | // return all elements |
|
| 697 | if ($idx === null) { |
|
| 698 | if (\count($elements) === 0) { |
|
| 699 | return new SimpleHtmlDomNodeBlank(); |
|
| 700 | } |
|
| 701 | ||
| 702 | return $elements; |
|
| 703 | } |
|
| 704 | ||
| 705 | // handle negative values |
|
| 706 | if ($idx < 0) { |
|
| 707 | $idx = \count($elements) + $idx; |
|
| 708 | } |
|
| 709 | ||
| 710 | // return one element |
|
| 711 | return $elements[$idx] ?? new SimpleHtmlDomNodeBlank(); |
|
| 712 | } |
|
| 713 | ||
| 714 | /** |
|
| 715 | * Get the encoding to use. |
|