Per questo riguarda l'albero, puoi stamparlo con questa funzione (attenzione perché è ricorsiva: se il file ha troppi nodi annidati può provocare errori):
Codice PHP:
function stampa_albero ($nodo)
{
echo '<blockquote>';
echo '<' . $nodo->nodeName;
$attrib = array();
foreach ($nodo->attributes as attrName => attrValue)
$attrib[] = $attrName . '="' . $attrValue . '"';
echo ' ' . implode (' ', $attrib) . '>';
$figli = $nodo->childNodes;
for ($i = 0; $i < $figli->length; $i++)
stampa_albero ($figli->item($i));
echo '</' . $nodeName . '>';
echo '</blockquote>';
}
$xml = new DOMDocument ();
stampa_albero ($xml->documentElement);
Per evidenziare il nodo che ti serve, aggiungi un secondo parametro alla funzione stampa_albero, che sarà il tuo nodo di riferimento (ovviamente, prima di chiamare stampa_albero la prima volta, dovrai individuarlo questo nodo). All'inizio del corpo della funzione confronta il nodo attuale (primo parametro) con il nodo di riferimento (secondo parametro): se questi sono uguali, modifica l'output di conseguenza.
Scusami per il ritardo nella risposta...
Stammi bene...