<? Xml version = "1.0" encoding = "UTF-8"?>
<rss version="2.0">
<channel>
<link>
/windows/Web_Development
/ XML_CSS_Utilities/LatestReleases-1.html
</ Link>
<language> en-us </ language>
<image>
<url> /images/logo.gif </ url>
<link> / </ link>
<beskrivning>
</ Description>
</ Image>
<item>
<title> Feed Mix </ title>
<link>
/windows/Web_Development/
XML_CSS_Utilities / Granska-Feed_Mix.html
</ Link>
<beskrivning>
Feed Mix är en funktionsrik RSS-editor med det unika
förmåga att skapa en ny RSS-feed från flera andra
som finns redan ...
</ Description>
</ Item>
<item>
<title> RSS Skicka </ title>
<link>
/windows/Web_Development/
XML_CSS_Utilities / Granska-RSS_Submit.html
</ Link>
<beskrivning>
RSS Skicka är det mest kraftfulla RSS-feed
främjande verktyg som finns ...
</ Description>
</ Item>
</ Channel>
</ Rss>
XML står för Extensible Markup Language och är en förenklad delmängd av Standard Generalized Markup Language (SGML). Dess främsta syfte är att underlätta utbyte av data mellan olika informationssystem, särskilt system som är anslutna via Internet.
RSS är ett webbinnehåll syndikering format. Dess namn är en förkortning för Really Simple Syndication. Med andra ord är RSS en lätt XML-format utformad för att dela rubriker och annat webbinnehåll. Mer detaljer om RSS 2.0-specifikationen finns på http://blogs.law.harvard.edu/tech/rss .
Ofta folk vill läsa RSS-filer och visa innehållet på sin webbplats med hjälp av en anpassad layout.
Denna artikel utgör en komplett guide till hela processen av parsning RSS 2.0-filer med PHP.
Krav:
För att kunna testa koden i denna tutorial behöver vi installerat en webbserver (jag använder Apache: http://httpd.apache.org ) konfigureras med stöd för PHP ( http://www.php. net ).
Du kan hitta massor av artiklar och tutorials på nätet om hur man installerar Apache och PHP.
Finns metod för att analysera en XML-fil.
För närvarande finns det två metoder som används av utvecklare för att läsa XML-filer, oavsett vilket programmeringsspråk kan vara: SAX (Simple API for XML) och DOM (Document Object Model).
Jag kommer inom kort att beskriva alla dessa metoder och slutligen välja det bästa för oss.
SAX (Simple API for XML) är en händelse baserad API. Varje gång ett tag öppnas eller stängs, eller helst tolken hittar någon text, gör det återbesök till användardefinierade funktioner för varje evenemang med nod eller textinformation. Fördelen med en SAX parser är att det är väldigt lätt. Tolken inte håller någonting i minnet särskilt länge, så det kan användas för extremt stora filer. Nackdelen är att skriva SAX parser händelse funktion kan ta lite tid och kodning erfarenhet.
DOM (Document Object Model) definierar ett standardiserat sätt för att komma åt och manipulera XML-dokument. DOM utgör ett XML-dokument som ett träd-struktur (en nod träd), med element, attribut och text definieras som noder. Ett API genomföra DOM-standarden kommer att läsa hela XML-dokumentet i minnet och ger en uppsättning funktioner för att manipulera data. Nackdelen med denna kraftfulla metod är att inte rekommenderas för stora XML-dokument, vilket skulle ta för mycket minne för att bygga modellen av dokumentet.
Eftersom oftast människor har att göra med normal storlek filer och inte alla har tillräckligt med tid eller kompetens för att skriva en hel SAX parser vi använder DOM metoden.
Så låt oss komma igång.
För att få användbara data från RSS-filen vi behöver för att slinga genom posten noder och extrahera den information vi behöver. Nedan hittar du scriptet för att analysera ovanstående RSS-flöden:
<? Php
$ Doc = new DOMDocument ();
$ Doc-> load ('/rss/windows/Web_Development/XML_CSS_Utilities.xml');
$ ArrFeeds = array ();
foreach ($ doc-> getElementsByTagName ("objekt") som $ nod) {
$ ItemRSS = array (
'Title' => $ node-> getElementsByTagName ('title') -> punkt (0) -> nodeValue,
'Desc' => $ node-> getElementsByTagName ("beskrivning") -> punkt (0) -> nodeValue,
'Länk' => $ node-> getElementsByTagName ("länk") -> punkt (0) -> nodeValue,
"Date" => $ node-> getElementsByTagName ("pubDate") -> punkt (0) -> nodeValue
);
array_push ($ arrFeeds, $ itemRSS);
}
?>
Skriptet börjar med att skapa ett nytt DOMDocument objekt och läsa RSS-filen till att objekt med lasten metoden. Efter det använder skript getElementsByName metod för att få en lista över alla element med angivet namn (i vårt fall "post").
Inom kretsen av objektet noder använder skript getElementsByName metod för att få nodeValue för titel, beskrivning, länk och datum taggar. Det nodeValue är texten i noden. En array används för att lagra varje uppsättning av värderingar och varje rad representerar en post i den stora samling som håller vår strukturerade RSS-data.
Som ni ser var det jobbet tillräckligt lätt. Alla data är nu innehas av de $ arrFeeds arrayen, det är väl strukturerad och du kan visa den med önskad layout.