¿Cómo puedo obtener el HTML serializado de un elemento con DOMDocument de PHP?

Este es mi script de ejemplo:

$html = <<<HTML
<div class="main">
    <div class="text">
    Capture this text 1
    </div>
    <div class="date">
    May 2010
    </div>
</div>
<div class="main">
    <div class="text">
    Capture this text 2
    </div>
    <div class="date">
    June 2010
    </div>
</div>
HTML;

$dom = new DOMDocument();
$dom->loadHTML($html);

$xpath = new DOMXPath($dom);


$tags = $xpath->query('//div[@class="main"]');
foreach ($tags as $tag) {
    print_r($tag->nodeValue."\n");
}

Esto pondrá fuera:

Capture this text 1 May 2010
Capture this text 2 June 2010 

Pero lo necesito salida:

<div class="text">
Capture this text 2
</div>
<div class="date">
June 2010
</div>

O al menos ser capaz de hacer algo como esto en mi bucle foreach:

$text = $tag->query('//div[@class="text"]')->nodeValue;
$date = $tag->query('//div[@class="date"]')->nodeValue;

Respuestas a la pregunta(2)

Su respuesta a la pregunta