line - 1] . "\n";
$ret .= str_repeat('-', $error->column) . "^\n";
}
switch ($error->level) {
case LIBXML_ERR_WARNING:
$ret .= "Warning $error->code: ";
break;
case LIBXML_ERR_ERROR:
$ret .= "Error $error->code: ";
break;
case LIBXML_ERR_FATAL:
$ret .= "Fatal Error $error->code: ";
break;
}
$ret .= trim($error->message) . "\n Line: $error->line" . "\n Column: $error->column\n\n";
return $ret;
}
/**
* Generic misc debugging function to dump a node's structure as plain text xml
*
* @param DOMElement $node
* @param string $function
*/
public function dumpNode($node, $function) {
$doc = new \DOMDocument(null, 'utf-8');
$doc->preserveWhiteSpace = true;
$doc->formatOutput = false;
$doc->strictErrorChecking = false;
$doc->recover = false;
$doc->resolveExternals = false;
if (! $newNode = @$doc->importNode($node, false)) {
echo "[Invalid node, dump failed]
";
return;
}
$doc->appendChild($newNode);
echo "$function (" . get_class($node) . "):
" . htmlentities(str_replace('', '', $doc->saveXML()) . "\n") . "
";
}
}