ok, dopo un pò di tentativi mal riusciti con DOMDocument, sono passato alle espressioni regolari e qualcosa sono riuscito a fare. Il codice con cui ho parzialmente risolto è
preg_match_all("/<(td|div) id=.descrizione.>(.*?)<\/(td|div)>/s", $str, $output);
il problema è che se all'interno del div (o td) con id="descrizione" si trova un div o td annidato, la stringa esportata non arriva alla fine ma viene "spezzata" alla prima chiusura anzichè all'ultima.
C'è un modo di fargli prendere l'utlima chiusura disponibile?
Spero di essermi spiegato bene.
grazie.