Witaj,
Samo generowanie xml jest bardzo proste Tworzysz skrypt postaci (wyjaśnienia zostały zakomentowane więc do ćwiczeń możesz skopiować całą zawartość<?php...?> pamiętaj o uzupełnieniu danych do połączenia z bazą i skorygowaniu pobieranych wartości:
<?php
//Tworzysz nagłówek
// Generowanie danych XML
header('Content-type: application/xml; charset=utf-8');
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
//Nawiązujesz połączenie z DB
$conn = mysql_connect('adres', 'login', 'pwd') or die('Could not connect !<br />Please contact the site\'s administrator.');
mysql_query('set names utf8');
$db = mysql_select_db('nazwa_bazy',$conn) or die('Could not connect to database !<br />Please contact the site\'s administrator. kom2');
//Zaczynasz tworzyć XMLA
//zaczynasz plik xml i ustawiasz kodowanie na utf-8
echo '<?xml version="1.0" encoding="utf-8" ?>'."\n";
//zaczynasz dodawanie treści standardowymi komendami echo
echo'<rekordy>'."\n";//początek jednego rekordu
echo' <utworzono>'.time().'</utworzono>'."\n";
$ii = 0; // to licznik inkrementujący licznik pozycji w XML
$zapytanie = mysql_query("Twoje_zpaytanie");
/*polecam do ćwiczeń zmianę sposobu odwoływania się do wyników zapytania z $wiersz[0] na np $wiersz->id łatwiej jest nimi operować i łatwiej odwołać się do konkretnej wartości i nei trzeba liczyć kolumn w mysql*/
while($rekord = mysql_fetch_object($zapytanie))
{
echo' <rekord id="'.$ii.'">'."\n";//wyświetlenie inkrementowanego id pozycji
echo' <id>'.$rekord->id.'</id>'."\n";//w ramkach <id> wpisuje wartość id rekordu pozostałe pozycje anlogicznie
echo' <post_created>'.$rekord->created.'</post_created>'."\n";
echo' <post_name><![CDATA['.strip_tags($rekord->name,'<a>').']]></post_name>'."\n";
echo' <post_data ><![CDATA['.strip_tags($rekord->search_data,'<a>') .']]></post_data >'."\n"
echo' </rekord>'."\n";
$ii++;
}
echo'</rekordy>'."\n";//zamyka dane rekordu
?>
strip_tags obcina tagi html i zezwala tylko na te które zdefiniujesz :
http://php.net/manual/en/function.strip-tags.php
znaczniki <![CDATA[
one pozwalają na przechowywanie danych niedozwolonych w XML typu '>' czy '&', czego jest duzo w kodzie np javascript, wszystko co jest w CDATA nie jest parsowane przez parser XML
http://forum.php.pl/lofiversion/index.php/t76653.html
Tyle pamiętam dawno nie korzystałem i nie gwarantuję, że gdzieś jakiś błąd się nie wkradł. Proszę o uzupełnienie,poprawienie przez kogoś z większym doświadczeniem z XML'ami.