*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace HtmlSanitizer\Util;
/**
* @author Titouan Galopin
*
* @final
*/
class Dumper
{
private static $id;
public static function dumpDomTree(\DOMNode $tree)
{
echo "\ndigraph G {\n";
self::$id = 0;
self::dumpDomNode($tree);
echo "}\n";
}
private static function dumpDomNode(\DOMNode $node): string
{
++self::$id;
$name = self::$id.'-'.$node->nodeName;
echo ' "'.$name."\";\n";
/** @var \DOMNode $child */
foreach ($node->childNodes ?: [] as $child) {
$childName = self::dumpDomNode($child);
echo ' "'.$name.'" -> "'.$childName."\";\n";
}
return $name;
}
}