2 pagine in totale: <<Indietro 1 [2]
Query XPath
Il World Wide Web Consortium ha creato XPath, un linguaggio che consente di accedere e manipolare i dati inseriti in un file XML.
XPath rappresenta per XML ciò che SQL rappresenta per i database relazionali: serve per interrogare la "base dati".
Mentre rimando ai links per chi volesse approfondire questo semplice linguaggio, vi mostro subito il codice per estrarre i valori da un file XML e legarli ad un Mobile controls:
<%@ Register TagPrefix="Mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile"%>
<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@Import Namespace="System.Xml" %>
<%@Import Namespace="System.Xml.XPath" %>
<%' importo le classi di oggetti .net per manipolare i files xml compresa quella dedicata ad XPATH %>
<SCRIPT runat="server">
Sub Page_Load(obj as object,e as eventargs)
'questa variabile è la stringa di testo che apparirà sul video
Dim strOutput as string = ""
'creo l'oggetto XPathDocument e lo localizzo 'mappo'
'attraverso Server.MapPath
Dim objDocumento_xml as New XPathDocument _
(Server.MapPath("libri.xml"))
'creo l'oggetto objNavigatore attraverso il metodo CreateNavigator di
'objDocumento_xml
Dim objNavigatore as XPathNavigator = objDocumento_xml.CreateNavigator
'creo l'oggetto objIteratore per iterare tra i nodi del documento xml
'e finalmente faccio la SELECT XPath
dim objIteratore as XPathNodeIterator = _
objNavigatore.Select("descendant::libri/informatica/autore")
While objIteratore.MoveNext()
strOutput += "<" & objIteratore.Current.Name & "><b>" & objIteratore.Current.Value & "</b>"
End While
'lego al mobile control dati_database il valore di strOutput
dati_XML.Text = strOutput
End Sub
</SCRIPT>
<mobile:Form id="Main" runat="server">
<mobile:Label runat="server" StyleReference="Title" Text="query XPATH" />
<mobile:TextView runat="server" id="dati_XML" Wrapping="NoWrap" />
</mobile:Form>Entriamo nel dettaglio: abbiamo creato l'oggetto XPathNavigator che attraverso il suo metodo Select() ci consente di fare una interrogazione nei dati strutturati nel file XML.
Il parametro che passiamo al metodo select è un'istruzione XPATH, il linguaggio al quale ho accennato e che assomiglia concettualmente alla navigazione tra directory e sotto directory nel Sistema Operativo DOS.
Oltre Xpath: XmlTextReader
XPath è la soluzione principale per manipolare sorgenti XML con i Mobile Controls, ma per completezza riporto anche un particolare costrutto della piattaforma .NET che consente un binding senza problemi dei dati tratti da un file XML usando il tipico oggetto XmlTextReader.
ArrayList consente di creare un indice di variabili (array) e di dimensionarlo a piacimento:
<%@ Register TagPrefix="Mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile"%>
<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Xml" %>
<SCRIPT runat=server>
sub Page_Load(obj as object, e as eventargs)
' Creo l'oggetto XMLTextReader
dim lettore_file_xml as XMLTextReader
lettore_file_xml = new XMLTextReader(Server.MapPath("libri.xml"))
' Creo l' ArrayList() che sarà legato al mobile controls
dim arxml As new ArrayList()
' un meccanismo di gestione dell'errore try catch
try
' faccio un ciclo attraverso il file xml utilizzando il metodo read()
' di lettore_file_xml e metto il risultato nell'array
While lettore_file_xml.Read()
arxml.Add(lettore_file_xml.value)
arxml.Add(lettore_file_xml.name)
End While
lst.DataSource = arxml
lst.DataBind()
catch ex as exception
' se c'è un errore metto il risultato nell'array
dim errore as string = "errore nell' accedere al file xml"
arxml.Add(errore)
lst.DataSource = arxml
lst.DataBind()
finally
lettore_file_xml.close
end try
end sub
</SCRIPT>
<mobile:Form id="Form1" runat="server">
<mobile:Label runat="server" Text="IL FILE XML"
Font-Name="arial"
Font-Size="Large"
Font-Bold="True"
Alignment="Center"
/>
<mobile:List id="lst" Font-Name="arial" runat="server"/>
</mobile:Form>Semplice vero?
Conclusioni
E con questo termina la seconda puntata degli articoli dedicati ai Mobile Controls. Ovviamente, anche per questo valgono le considerazioni precedentemente fatte: abbiamo solo iniziato ad intaccare la superficie di questa nuova tecnologia ed abbiamo bisogno di lavorarci con calma, studiando, documentandoci ma soprattutto divertiandoci.
Approfondimenti
- Introduzione al Mobile Internet Toolkit di .NET
- Kit di sviluppo Openwave
- Kit di sviluppo Nokia
- Mobile Internet Toolkit
- Uso dei MIT con VS.net
2 pagine in totale: <<Indietro 1 [2]
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà

Stampa
Download



