@@ 467-494 (lines=28) @@ | ||
464 | * |
|
465 | * @return SimpleHtmlDomNode|SimpleHtmlDomNode[]|SimpleHtmlDomNodeBlank |
|
466 | */ |
|
467 | public function getElementsByTagName($name, $idx = null) |
|
468 | { |
|
469 | $nodesList = $this->document->getElementsByTagName($name); |
|
470 | ||
471 | $elements = new SimpleHtmlDomNode(); |
|
472 | ||
473 | foreach ($nodesList as $node) { |
|
474 | $elements[] = new SimpleHtmlDom($node); |
|
475 | } |
|
476 | ||
477 | // return all elements |
|
478 | if (null === $idx) { |
|
479 | return $elements; |
|
480 | } |
|
481 | ||
482 | // handle negative values |
|
483 | if ($idx < 0) { |
|
484 | $idx = count($elements) + $idx; |
|
485 | } |
|
486 | ||
487 | // return one element |
|
488 | if (isset($elements[$idx])) { |
|
489 | return $elements[$idx]; |
|
490 | } |
|
491 | ||
492 | // return a blank-element |
|
493 | return new SimpleHtmlDomNodeBlank(); |
|
494 | } |
|
495 | ||
496 | /** |
|
497 | * Find list of nodes with a CSS selector. |
@@ 324-351 (lines=28) @@ | ||
321 | * |
|
322 | * @return SimpleHtmlDomNode|SimpleHtmlDomNode[]|SimpleHtmlDomNodeBlank |
|
323 | */ |
|
324 | public function getElementsByTagName($name, $idx = null) |
|
325 | { |
|
326 | $nodesList = $this->node->getElementsByTagName($name); |
|
327 | ||
328 | $elements = new SimpleHtmlDomNode(); |
|
329 | ||
330 | foreach ($nodesList as $node) { |
|
331 | $elements[] = new self($node); |
|
332 | } |
|
333 | ||
334 | // return all elements |
|
335 | if (null === $idx) { |
|
336 | return $elements; |
|
337 | } |
|
338 | ||
339 | // handle negative values |
|
340 | if ($idx < 0) { |
|
341 | $idx = count($elements) + $idx; |
|
342 | } |
|
343 | ||
344 | // return one element |
|
345 | if (isset($elements[$idx])) { |
|
346 | return $elements[$idx]; |
|
347 | } |
|
348 | ||
349 | // return a blank-element |
|
350 | return new SimpleHtmlDomNodeBlank(); |
|
351 | } |
|
352 | ||
353 | /** |
|
354 | * Create a new "HtmlDomParser"-object from the current context. |