Ciao ragazzi.
Sto sclerando nel disperato tentativo di crearmi un lettore di feed RSS senza utilizzare le risorse che trovo online.
Per quanto il fine sia propedeutico, mi sto scervellando da un paio di pomeriggi, ed ora mi sono deciso di postare per risolvere questo (piccolo??) problema.
Allora, ho un file XML composto (più o meno) come segue:
codice:
## nomefeed_lingua.xml
<?xml version="1.0" encoding="iso-8859-1" ?>
<root>
<child>
<tag1>xxxxx</tag1>
<tag2>xxxxx</tag2>
<tag3>xxxxx</tag3>
<tag4>xxxxx</tag4>
<tag5>xxxxx</tag5>
<tag6>xxxxx</tag6>
<tag7>xxxxx</tag7>
<tag8>xxxxx</tag8>
<tag9 value="valore">xxxxx</tag9>
<item>
<link>http://www.sito.it</link>
<title>
<![CDATA[
Titolo articolo
]]>
</title>
<description>
<![CDATA[
Lorem Ipsum eccetera eccetera.
]]>
</description>
<author>Autore</author>
<category domain="http://www.sito.it/dominio/">Categoria</category>
<pubDate>dd-mm-aaaa HH:ii:ss</pubDate>
</item>
</child>
</root>
Codice PHP:
// pagina PHP che legge il file XML
<?php
$cartella_feed = "cartella/del/feed";
$attivi = opendir($cartella_feed);
$quanti_feed = 0;
while ($file = readdir($attivi)) {
list ($nome,$estensione) = explode(".", $file);
if ($estensione == "xml") {
// conta i feed presenti nella cartella
$quanti_feed++;
list ($nome_feed,$lingua) = explode("_", $nome);
if ($lingua == "it") { $intestazione = ucfirst($nome_feed)." ::: Lingua: Italiano"; }
else { $intestazione = ucfirst($nome_feed)." ::: Lingua: Inglese"; }
// mostra il nome dei feed
echo "[$quanti_feed] $intestazione<hr />";
// inizio a scorrere il file XML
$parser = xml_parser_create();
$data = implode("", file("$cartella_feed/$file"));
// metto tutti i TAG in un array
xml_parse_into_struct($parser, $data, &$d_ar, &$i_ar);
// libero memoria
xml_parser_free($parser);
// scorro l'array che contiene i vari figli del tag di root
foreach($d_ar as $element) {
// stessa cosa per separare le varie proprietà di ogni tag
foreach ($element as $tag) {
// PARTE INCRIMINATA
$item = $tag['item'];
$link = $tag['link'];
$title = $tag['title'];
// eccetera - le variabili così definite le vorrei passare ad
// un Javascript o a Flash, per il lettore di FEED
// vero e proprio
// FINE PARTE INCRIMINATA
}
}
echo "<hr />";
}
}
closedir($attivi);
?>
La porzione di codice che è segnata come "INCRIMINATA" è quella per cui vi chiedo aiuto.
Sostanzialmente, non riesco ad accedere all'array che contiene le varie parti del XML e non riesco a capire dove sbaglio.
C'è qualcuno che mi può dare una manina???
Grazie