¿Cómo evitar que se agregue el doctype al HTML?

He estado trabajando en estas etiquetas html ordenadas-desordenadas con DOM, pero ahora me doy cuenta de un problema mayor,

$content = '<p><a href="#">this is a link</a></p>';

function tidy_html($content,$allowable_tags = null, $span_regex = null)
{      
    $dom = new DOMDocument();
    $dom->loadHTML($content);

        // other codes
    return $dom->saveHTML();
}

echo tidy_html($content);

Producirá el DOM completo,

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
<html><body><p><a href="#">this is a link</a></p></body></html> 

pero solo quiero algo como esto en el regreso,

<p><a href="#">this is a link</a></p>

No quiero,

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
    <html><body>...</body></html>

¿¿Es posible?

EDITAR

elinnerHTML simulación genera algunos códigos extraños en mi base de datos, como&#13; ,  , ’

<p>Monday July 5th 10am - 3.30pm £20</p>&#13;
<p>Be one of the first visitors to the ...at this special event.Â</p>&#13;
<p>All participants will receive a free copy of the ‘Contemporary Art Kit’ produced exclusively for Art on....</p>&#13;

elinnerHTML simulación,

$innerHHTML = '';
$nodeBody = $dom->getElementsByTagName('body')->item(0);
foreach($nodeBody->childNodes as $child) {
  $innerHTML .= $nodeBody->ownerDocument->saveXML($child);
}

Descubrí que la razón por la que crea códigos extraños cuando hay un descanso es causada porsaveXML($child)

Así que cuando tengo algo como esto,

$content = '<p><br/><a href="#">xx</a></p>
<p><br/><a href="#">xx</a></p>';

Devolverá algo como esto,

<p><a href="#">xx</a></p>&#13;
<p><a href="#">xx</a></p>

Pero quiero algo de esto en realidad,

<p><a href="#">xx</a></p>
<p><a href="#">xx</a></p>

Respuestas a la pregunta(2)

Su respuesta a la pregunta