XML  »  Guide  »  Guida VoiceXML 

Lettore RSS: estrarre i dati



In questa lezione creiamo il file "argomento.asp" che ha lo scopo di:

  • aprire il file con il feed rss opportuno, ovvero quello scelto dall'utente e passatogli attraverso la querystring
  • creare un form per ogni singola notizie e caricare la grammatica per ogni singolo form
  • gestire la navigazione dell'utente tra una notizia e l'altra

Ora carichiamo il feed corretto nel nostro file.

Listato 6.5: caricamento del file di feed

<%
file="http://www.html.it/rss/" & request("argomento")
Set XML = Server.CreateObject("msxml2.DOMDocument.3.0")
XML.async = false
XML.setProperty "ServerHTTPRequest", True
XML.validateOnParse =false' true
blnLoaded = XML.Load(file)
%>

Navigando il file XML dobbiamo estrarre i nodi "title", che contengono il titolo della notizia, e i nodi "description" che contengono la notizia stessa. L'applicazione leggerà queste informazioni all'utente.

Listato 6.5: caricamento del file di feed

<%
Set objNodeList = XML.getElementsByTagName("item")
For Each objNode In objNodeList
For Each objNode2 In objNode.childNodes
Select Case objNode2.nodeName
Case "title"
' estraiamo il valore del title
strTNotizia = objNode2.firstChild.nodevalue
Case "description"
' estraiamo il valore della descizione
strDNotizia = objNode2.firstChild.nodevalue
End Select
Next
i = i + 1
' qui dobbiamo inserire il nostro form voicexml con le grammatiche per la navigazione

next
%>

Abbiamo già visto come inserire il codice VXML all'interno di una pagina asp, perciò ora ci preoccupiamo soltanto di come scrivere il nostro file VXML e la parte di navigazione.

Listato 6.6: codice per la singola notizia

<form id="notizia1">
<field name="myapp">
<grammar src="../grm/navigazione.grxml"/>
<prompt>
<p><s><%=strTNotizia=%></s></p>
<p><s><%=strDNotizia=%></s></p>
</prompt>
<noinput>
<!-- inserire qui i gestori per gli eventi di nomatch e noinput -->
<filled>
<if cond="myapp== 'aiuto' ">
<prompt>
<p>
<s>I comandi disponibili sono: prossima notizia, notizia precedente, aiuto e ripeti.</s>
</p>
</prompt>
<goto next="#notizia1" />
<elseif cond="myapp== 'rip'"/>
<goto next="#notizia1" />
<elseif cond="myapp== 'not+'"/>
<goto next="#notizia2" />
...
</field>
</form>

Ovviamente possiamo parametrizzare questo codice per far si che si adatti alle nostre dieci notizia sostituendo a notizia1, un valore che incrementeremo dal nostro codice ASP, e stessa cosa faremo per i salti della navigazione.

Vediamo come modificare il codice (riportiamo solo le voci cambiate):

listato 6.7: codice per la singola notizia modificato

<!-- qui inseriamo l'indicatore incrementato da ASP-->
<form id="notizia(<%=i%>">
<!-- per gestire i salti di navigazione in avanti scriveremo: -->
<goto expr="'notizia' + <%=i+1%>" />
<!-- per gestire i salti di navigazione indietro scriveremo: -->
<goto expr="'notizia' + <%=i-1%>" />

Ultimi articoli XML

Open Graph Protocol, Facebook e il Web Semantico

Come sfruttare il Web Semantico "made in Facebook"

Introduzione a RDFa - 2

Arricchire un documento HTML con metadati semantici presi dal...

Introduzione a RDFa

Cos'è e a cosa serve il linguaggio che potrebbe aprire il campo alle...

Usare SVG per creare sfondi flessibili, scalabili e divertenti

Scopriamo cos'è il formato SVG e come possiamo usarlo in modo...

Visualizzare i metadati RDF Dublin core con le trasformazioni XSL

Mettere insieme XSL, XPATH e le definizioni Dublin core per...

Altri articoli

Guide XML

Guida Podcasting

Un percorso in 16 lezioni, per entrare nella filosofia del podcast...

Guida Smil 2.0

Un percorso pratico alla scoperta di SMIL: il linguaggio (XML) per...

Guida Web service

Cosa sono, a cosa servono e come si creano servizi Web, i sistemi...

Altre guide

Newsletter @XML

Ogni mese, direttamente nella tua e-mail: articoli, guide, FAQ e approfondimenti sui linguaggi della famiglia XML.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Nessun corso previsto

Nessun corso previsto