Ciao sono alle prese con la creazione di RSS attraverso PHP.
Vi posto lo script che da questo errore:

Lo stesso errore :

Su Firefox:

Errore interpretazione XML: la dichiarazione XML o testuale non è all'inizio di un'entità
Indirizzo: http://www.dalsalento.it/dalsalento_rss.php
Linea numero 2, colonna 1:<?xml version="1.0" encoding="utf-8"?>
^

Su explorer

Dichiarazione XML non valida.
Riga: 2 Carattere: 3

<?xml version="1.0" encoding="utf-8"?>

La pagina in questione è questa www.dalsalento.it/dalsalento_rss.php

il codice della pagina preso da questo tutorial è riadattato alle mie esigenze è questo :

Codice PHP:
<?php
header
("Content-type: application/xml");
//Con questa riga mandiamo al browser un header compatibile col formato XML

//Il blocco seguente fa la connessione al database...



//E quest'altro seleziona le ultime 7 notizie
$risultato=mysql_query("SELECT * FROM articoli WHERE (visible = '1' AND archivio ='0') ORDER BY data_annuncio DESC LIMIT 10"$db);

//Ora iniziamo a occuparci del feed vero e proprio
require_once("include/feedcreator.class.php"); 
//includiamo la classe col nome che le abbiamo assegnato

//e inizializziamo l'oggetto con parametri personalizzati (descrizione, titolo e link)
$rss = new UniversalFeedCreator(); 
$rss->useCached(); 
$rss->title "Dal Salento.it"
$rss->description "Feed del portale Dal Salento.it"
$rss->link "http://www.dalsalento.it"//Questo non viene reso nel feed, sarà un bug
$rss->feedURL "http://www.dalsalento.it"

//Questa funzione rimpiazza alcuni caratteri speciali con le relative entità XML
//serve per evitare errori nell'output
function xmlentities $string ) {
$ar1 = array ( '&' '"''&apos;' '&lt;' '&gt;' );
$ar2 = array ( '&''"'"’"'<''>' ) ;
return 
str_replace $ar1 $ar2$string );
}

//Questo ciclo che estrae le notizie dal DB e le inserisce come nuovo ITEM nel feed
//I campi da cui estraggo le notizie si chiamano 'subject', 'content', 'cat', e 'pubdate'
//ma nel vostro caso i nomi potrebbero essere differenti, e alcuni campi assenti
//(come Author nel mio caso)
while ($data=mysql_fetch_array($risultato)) { 
//Eseguo xhtmlentities() sui primi due campi, che potrebbero contenere entità non valide
$data['titolo'] = xmlentities($data['titolo']);
$data['paragrafetto'] = xmlentities($data['paragrafetto']);

//E ora comincio a inserire le informazioni di ogni item.
$item = new FeedItem(); 
//notate come a volte prendo i dati così come sono dal db, altre li costruisco al volo
$item->category $data['categoria'];
$item->title $data['titolo'];
$item->link "http://www.dalsalento.it/dettaglio.php?id_articolo=".$data['id_articolo'] ;
$item->description $data['paragrafetto'];
//La mia PUBDATE è in formato UNIX TIMESTAMP, ma la classe la converte in formato leggibile
$item->date $data['data_annuncio'];
//Questa riga per me è invariabile
$item->author "news@dalsalento.it";

//Definiamo le opzioni dell'item: questo contiene tag HTML...
$item->descriptionHtmlSyndicated true;
//avremmo impostato FALSE per togliere i tag HTML

//...e contiene anche l'elemento <category>
$item->categoryHtmlSyndicated true;

//decommentando la riga seguente, troncheremmo Description (anche con tag) dopo 500 caratteri
//item->descriptionTruncSize = 500;

$rss->addItem($item); //Questo lasciatelo, inserisce il nuovo item coi dati appena processati


//E infine l'output a video.
echo $rss->createFeed("RSS2.0"""); 
//Ovviamente abbiamo anche la possibilità di salvare il file su disco, o di scegliere altri formati
//Vi rimando ai commenti presenti nella classe per gli esempi del caso.
?>
GRAZIE PER L'AIUTO!