<? Xml version = "1.0" encoding = "UTF-8"?>
<rss version="2.0">
<channel>
<link>
/windows/Web_Development
/ XML_CSS_Utilities/LatestReleases-1.html
</ Link>
<lingua> it-it </ language>
<image>
<url> /images/logo.gif </ url>
/ <link> </ link>
<description>
</ Description>
</ Image>
<item>
Alimentazione <title> Mix </ title>
<link>
/windows/Web_Development/
XML_CSS_Utilities / Review-Feed_Mix.html
</ Link>
<description>
Mix feed è un ricco di funzionalità dell'editor RSS con l'esclusivo
possibilità di creare un nuovo feed RSS da molti altri
che già esistono ...
</ Description>
</ Item>
<item>
<title> RSS Invia </ title>
<link>
/windows/Web_Development/
XML_CSS_Utilities / Review-RSS_Submit.html
</ Link>
<description>
RSS Submit è il feed RSS più potente
promozione strumento a disposizione ...
</ Description>
</ Item>
</ Channel>
</ Rss>
XML è l'acronimo di Extensible Markup Language ed è un sottoinsieme semplificato di Standard Generalized Markup Language (SGML). Il suo scopo primario è quello di facilitare la condivisione di dati tra sistemi informativi diversi, in particolare sistemi connessi via Internet.
RSS è un formato di contenuti Web syndication. Il suo nome è l'acronimo di Really Simple Syndication. In altre parole, RSS è un formato XML leggero progettato per la condivisione di titoli e contenuti web. Maggiori dettagli sulle specifiche RSS 2.0 sono disponibili all'indirizzo http://blogs.law.harvard.edu/tech/rss .
Molto spesso la gente vuole leggere i file RSS e visualizzare il contenuto sul loro sito con un layout personalizzato.
Questo articolo rappresenta una guida completa per l'intero processo di analisi di file RSS 2.0 utilizzando PHP.
Requisiti:
Per essere in grado di testare il codice in questo tutorial abbiamo bisogno di avere installato un server web (sto usando Apache: http://httpd.apache.org ) configurato con il supporto per PHP ( http://www.php. net ).
Potete trovare un sacco di articoli e tutorial sul web su come installare Apache e PHP.
Metodo disponibile per l'analisi di un file XML.
Attualmente ci sono due metodi utilizzati dagli sviluppatori per leggere i file XML, a prescindere dal linguaggio di programmazione può essere: SAX (Simple API for XML) e DOM (Document Object Model).
Io brevemente descrivere ciascuno di questi metodi e, infine, scegliere il meglio per noi.
SAX (Simple API for XML) è una API evento basato. Ogni volta che un tag è aperto o chiuso, o in qualsiasi momento il parser trova una parte di testo, fa richiami a funzioni definite dall'utente per ogni evento con il nodo o informazioni di testo. Il vantaggio di un parser SAX è che è davvero leggero. Il parser non tenere nulla in memoria per molto tempo, quindi può essere utilizzato per i file estremamente grandi. Lo svantaggio è che la scrittura di parser SAX funzione evento può richiedere un certo tempo e l'esperienza di codifica.
Il DOM (Document Object Model) definisce un modo standard per l'accesso e la manipolazione di documenti XML. Il DOM presenta un documento XML come una struttura ad albero (albero nodo), con gli elementi, attributi e testo definito come nodi. Una API standard DOM attuazione leggerà l'intero documento XML in memoria e di fornire un insieme di funzioni per manipolare i dati. Lo svantaggio di questo metodo potente è che non è raccomandato per i documenti XML di grandi dimensioni, che richiederebbe troppa memoria per costruire il modello del documento.
Perché di solito le persone a che fare con file di dimensioni normali e non tutti hanno il tempo o le competenze necessarie per scrivere un parser SAX intero useremo il metodo DOM.
Quindi cerchiamo di iniziare.
Al fine di ottenere i dati utili dal file RSS è necessario un ciclo tra i nodi elemento ed estrarre le informazioni che ci servono. Qui di seguito potete trovare lo script per l'analisi sopra i feed RSS:
<? Php
$ Doc = new DOMDocument ();
$ Doc-> load ('/rss/windows/Web_Development/XML_CSS_Utilities.xml');
$ ArrFeeds = array ();
foreach ($ doc-> getElementsByTagName ('voce') come $ node) {
$ ItemRSS = array (
'Title' => $ node-> getElementsByTagName ('title') -> item (0) -> nodeValue,
'Desc' => $ node-> getElementsByTagName ('description') - voce> (0) -> nodeValue,
'Link' => $ node-> getElementsByTagName ('link') - voce> (0) -> nodeValue,
'Date' => $ node-> getElementsByTagName ('pubDate') - voce> (0) -> nodeValue
);
array_push ($ arrFeeds, $ itemRSS);
}
?>
Lo script inizia con la creazione di un nuovo oggetto DOMDocument e caricare il file RSS in quella oggetto utilizzando il metodo di carico. Dopo di che, lo script utilizza il metodo getElementsByName per ottenere un elenco di tutti gli elementi con il nome specificato (in 'voce' il nostro caso).
All'interno del ciclo dei nodi elemento, lo script utilizza il metodo getElementsByName per ottenere il nodeValue per i tag titolo, descrizione, link e data. NodeValue è il testo all'interno del nodo. Un array viene utilizzato per archiviare ogni insieme di valori e di ogni array rappresenta una voce della matrice grande che contiene i nostri dati strutturati RSS.
Come potete vedere, il lavoro è stato abbastanza facile. Tutti i dati sono ora tenuti da l'array $ arrFeeds, è ben strutturato ed è possibile visualizzarla utilizzando il layout desiderato.