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