Ya tengo la solución !
Ante todo gracias por vuestras respuestas.
Aunque la solución era más sencilla.
Partiendo del mismo código que había puesto sólo he tenido que añadir $text = $href->nodeValue; donde la variable $text será el texto del link.
Código:
<?
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
@$dom->loadHTML($html);
// grab all the on the page
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
$text = $href->nodeValue;
echo "<a href='$url'>$text</a>";
}
?>