Přehled článků z RSS ve stránce ASP
Tentokrát si ukážeme, jak do naší aplikace vypsat nabídku článků jiného serveru. Načteme zdroj RSS a následně jej přetransformujeme jako XML pomocí XSL šablony. Pro čtení zdrojů RSS si připravíme vlastní proceduru, takže nabídku článků budeme moci snadno vložit i opakovaně na libovolné místo ve stránce.
Na rovinu je potřeba říct, že ASP je v tuto chvíli již zastaralé a neposkytuje pro vývojáře takový komfort jako ASP.NET. V našem příkladě, který vznikl jen jako doplněk k článkům o transformaci XML v ASP a čtení RSS v ASP.NET, silně pocítíme absenci mechanismu cachování. Berte jej proto jako ukázku možností snadného doplnění starší aplikace (redakční systém, weblog) pracující v systému ASP.
Na zmíněné články odkazuji zejména pro princip transformace v ASP a návrh XSLT šablony pro transformaci RSS, kterou se zde zabývat nebudeme. Než ale budeme pokračovat, doporučuji vám prohlédnout si ukázku (zdrojový kód).
Nejprve ukázka kódu stránky, ve které použijeme proceduru (viz níže) zobrazující RSS:
<!– #include file=“RSSReader.inc.asp“ –><?xml version=“1.0″ encoding=“utf-8″ ?>
<!DOCTYPE html PUBLIC „-//W3C//DTD XHTML 1.0 Transitional//EN“ „http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=“http://www.w3.org/1999/xhtml“ xml:lang=“cs“ lang=“cs“ dir=“ltr“>
<head>
<meta http-equiv=“Content-type“ content=“text/html; charset=utf-8″ />
<title>RSS Demo</title>
</head>
<body>
Interval.cz – RSS 2.0<br />
<div style=“margin:6px;padding:6px;background-color:lightgreen;width:300px“>
<% getRSS „http://interval.cz/__rss/rss.asp“,“RSSReader.xslt“ %>
</div>
</body>
</html>
Vidíme, že potřebný kód do stránky includujeme ze souboru RSSReader.inc.asp, výsledek použité procedury se potom objeví v části ASP kódu (uzavřeno do <% %>
). Nadřízený kontejner DIV určuje styl zobrazení – v našem případě sloupec dané šířky, barvy pozadí a odsazení z vnějšku a zevnitř. Výsledkem zpracování této procedury je pouze výstup HTML kódu, proto ve své aplikaci můžete samozřejmě použít uvedenou proceduru tolikrát, kolikrát chcete, a vůbec ji třeba ani do žádného kontejneru nevnořovat.
„Přiražení“ deklarace XML v hlavičce stránky na povel pro include je nutné – jinak by se ve výsledném kódu objevil jako první prázdný řádek, což je v rozporu se specifikací, podle které jako první musí opravdu být deklarace XML. S ohledem na porovnání s již zmíněnou aplikací v ASP.NET jsem zvolil kódování UTF-8, není ale problém použít kódování jiné (i když objekt XMLDOM. interně pracuje právě v UTF-8).
Nyní zbývá popsat princip procedury, která stahuje vzdálený zdroj RSS prostřednictvím protokolu HTTP a provádí jeho transformaci. Budeme ji mít uloženou v souboru RSSReader.inc.asp:
<script language=“VBScript“ runat=“server“>
Sub getRSS(ByVal rssFile, ByVal xslFile)
Dim rssXML, rssXSLT, rssHTTP // deklarace použitých proměnných
Set rssHTTP = Server.CreateObject(„Microsoft.XmlHttp“) // nastavit jako nově vytvořený objekt XmlHttp
rssHTTP.Open „GET“, rssFile, False // použít metodu Open pro získání obsahu ze zadané URL
rssHTTP.Send // odeslat požadavek
Set rssXML = Server.CreateObject(„Microsoft.XMLDOM“)
rssXML.async = False
rssXML.loadxml(rssHTTP.responseXML.xml) // jako zdroj XML pro transformaci „naloudovat“ výsledek členu responseXML.xml
Set rssHTTP = Nothing // uklidit již nepotřebný objekt
Set rssXSLT = Server.CreateObject(„Microsoft.XMLDOM“)
rssXSLT.async = False
rssXSLT.load(Server.MapPath(xslFile))
rssXML.transformNodeToObject rssXSLT, Response
Set rssXML = Nothing
Set rssXSLT = Nothing
End Sub
</script>
Procedura vychází z principu článku o transformaci XML v ASP, navíc zde musíme zajistit dopravení obsahu RSS ze vzdáleného serveru do objektu XMLDOM. Využijeme k tomu objekt XmlHttp. Inicializujeme patřičné parametry metodou open a metodou send odešleme požadavek vzdálenému serveru. Načtený zdroj RSS máme potom pro další zpracování k dispozici jako parsovaný XML obsah ve vlastnosti xml metody responseXML. Dále už probíhá transformace dle zadaného XSLT souboru (ten máme u naší aplikace, nestahuje se z cizího serveru), princip je tedy shodný jako v již zmíněném článku.
Ve finální aplikaci by se patřilo ještě ošetřit možné chybové stavy, které mohou vzniknout chybějícím či nepřístupným RSS nebo souborem šablony XSLT, ale také jejich chybnou syntaxí. Oproti ASP.NET zde nemáme žádný další komfort, například v podobě cachování, proto je tento způsob vhodný opravdu jen tam, kde z nějakého důvodu ASP.NET nemůžeme použít (např. je projekt příliš rozsáhlý než aby bylo možné stávající ASP stránky jednoduše upravit na ASP.NET a využívá práci sessions, které neumožňují koexistenci ASP i ASP.NET stránek v rámci jedné aplikace). Již z ukázky vidíte, že načtení stránky docela zdržuje zejména stažení RSS z cizího serveru, proto je tento „holý“ způsob bez cachování, nebo třeba jednorázové stažení a vygenerování souboru na našem serveru, vhodný spíše pro stránky s menším počtem přístupů.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024 -
Jak zabezpečit váš chytrý telefon před kybernetickými hrozbami
30. listopadu 2023 -
Nejlevnější VPS: To je nový Cloud Server Mini od ZonerCloud
4. června 2024 -
Rychlost serveru: Klíč k lepšímu umístění ve vyhledávačích
7. června 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024