Skip to content

Instantly share code, notes, and snippets.

@blar
Created July 29, 2012 19:40
Show Gist options
  • Save blar/3201381 to your computer and use it in GitHub Desktop.
Save blar/3201381 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