Skip to content

Instantly share code, notes, and snippets.

@xeoncross
Forked from blar/gist:3201381
Created July 30, 2012 15:17
Show Gist options
  • Save xeoncross/3207688 to your computer and use it in GitHub Desktop.
Save xeoncross/3207688 to your computer and use it in GitHub Desktop.
RecursiveDOMIterator
<?php
class RecursiveDOMIterator extends RecursiveArrayIterator {
public function __construct($node) {
parent::__construct(iterator_to_array($node->childNodes));
}
public function getChildren() {
return new self($this->current());
}
public function hasChildren() {
return $this->current()->hasChildNodes();
}
}
$document = new DOMDocument();
$document->loadHTML($content);
$body = $document->getElementsByTagName('body')->item(0);
$iterator = new RecursiveDOMIterator($body);
$recursiveIterator = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
foreach($iterator as $node) {
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment