2 pagine in totale: <<Indietro 1 [2]
Come i file di testo
Un primo approccio reale ad XML l'ho avuto utilizzando, in modo veloce e automatico, un contatore di accessi a determinate pagine ASP. Il compito che mi ero posto era quanto mai semplice: voglio aggiungere in alcune mie pagine ASP dove sono presenti dei testi, un contatore di visite che sia il più semplice possibile da inserire in qualsiasi pagina, senza niente da configurare o impostare.
Inoltre, voglio poterlo inserire nella mie pagine ASP con un semplice
<!--#include file ="include/contatore.asp"-->ed allo stesso tempo, in quel punto voglio che mi venga srcitto il numero di visite attuali.
La prima soluzione che avevo pensato era del codice ASP con un database. Per identificare la pagina mi era sufficiente guardare il nome della pagina stessa:
<% pagina= request.servervariables("SCRIPT_NAME") %>Per la memorizzazione avevo pensato ad una tabella contente due campi, il primo nel quale avrei memorizzato il nome della pagina così come ho mostrato prima, l'altro, un campo numerico, in cui avrei memorizzato il numero di visite.
Il codice ASP non avrebbe fatto altro che controllare se quella pagina fosse stata presente nel database. In caso ci fosse stata avrebbe aumentato il campo contatore di uno, altrimenti avrebbe aggiunto un nuovo record con il nome della pagina corrente.
Dopo la realizzazione del contatore in questo modo iniziai a pensare a soluzioni alternative.
Una di queste poteva essere con la creazione di un file di testo dove inserire come testo il numero di visita.
Con questa scelta mi si porgeva il problema della creazione di un file di testo per ogni pagina ASP a cui avessi voluto aggiungere un contatore. Potevo inserire anche in un file di testo tutte le pagine ASP a cui volevo aggiungere un contatore, ma la trattazione dei dati in questo modo sarebbe diventata problematica e alquanto svantaggiosa se confrontata con l'uso di database.
Fu proprio in quel periodo che pensai all'uso di XML per questo scopo. Avrei potuto creare un unico file, e con le funzioni e i comandi dell'XMLDOM (libreria di funzioni presente nell'MDAC dalla versione 2.1), avrei potuto gestire i dati al suo interno in modo semplice.
Il file XML avrebbe avuto questa struttura:

Il file da includere nella pagina ASP doveva quindi seguire questa logica di funzionamento:
- con la funzione prima menzionata leggere il nome della pagina ASP.
- caricare in memoria il file XML.
- controllare se il nome di quella pagina ASP è presente nell'elenco.
- se NON è presente, creare un nuovo TAG con il nome della pagina ASP con valore pari a ?1?.
- se è presente, aumentare di un'unità il valore presente.
- salvare il file XML.
Qui di seguito il listato in VBsrcipt che consente di fare questa operazione:
<%
response.write "Numero di visite per questa pagina: "
url= request.servervariables("srcIPT_NAME")
url=server.htmlencode(replace(url,"/","_"))
set objXml=server.createobject("Microsoft.XMLDOM")
objXml.async=false
objXml.load(server.mappath("contatore.xml"))
if objXml.parseError.ErrorCode<>0 then
set xmlRoot=objXml.CreateElement("contatore")
objXml.appendChild xmlRoot
end if
Set objNodeList = objXml.getElementsByTagName(url)
if objNodeList.length=0 then
Set root = objxml.documentElement
Set newElem = objxml.createElement(url)
root.appendchild newElem
newelem.text="1"
response.write "1<p>"
else
objNodeList.item(0).text=objNodeList.item(0).text+1
response.write objNodeList.item(0).text&"<p>"
end if
objxml.save (server.mappath("contatore.xml"))
set objXml=nothing
%> Qui di seguito la desrcizione dei comandi principali di questo srcipt linea per linea:
Linea 4 - Alla variabile ?url? viene assegnato il nome della pagina ASP attuale.
Linea 5 - I documenti XML non accettano caratteri come: <,>, ecc.
Linea 7 - Si crea l'oggetto ?objxml? che ci servirà per manipolare il nostro file in formato XML.
Linea 8 - Prima di caricare in memoria il nostro file XML (linea 9), dobbiamo decidere se utilizzare il modo sincrono o asincrono per la gestione di questo file. Impostando la proprietà ?async? in ?false?, facciamo in modo di caricare tutto il contenuto del file XML in memoria per una più veloce gestione.
Linea 9 - Con questo comando carichiamo in memoria il file XML.
Linee 11,12,13,14 - E' importante controllare che il caricamento del file XML sia andato a buon fine prima di procedere. Con questa linea controlliamo che il file sia stato trovato, per agire di conseguenza. Se non viene trovato viene creato il nodo principale che conterrà il contatore delle nostre pagine.
Linee 16,17 - La funzione ?getElementsByTagName(stringa)? cerca in tutto il documento XML il TAG ?stringa?. Nel nostro caso questa funzione viene richiamata per ricercare il nome della pagina ASP. Per verificare che la ricerca sia andata a buon fine o meno, controlliamo la proprietà ?.length? dell'oggetto creato dopo la ricerca. Se è pari a zero, il nome della pagina ASP non è stato trovato.
Linee 18,19,20,21 - Queste linee creano il nuovo TAG contenente il nome della pagina ASP.
Linea 25 - Se il TAG della nostra pagina ASP è stato trovato, aumentiamo il valore del contatore di un'unità.
Linea 29 - Memorizziamo il nostro file XML modificato.
Linea 30 - Cancelliamo dalla memoria l'oggetto creato.
Conclusioni
In questo primo articolo dedicato ad XML abbiamo cominciato a fare conoscenza con le funzioni base dell'oggetto XMLDOM.
Nei prossimi articoli vedremo come utilizzare al meglio XML in altri casi, arrivando a costruire un forum.
Approfondimenti
2 pagine in totale: <<Indietro 1 [2]
Contenuti dell'articolo
- Pagina 1
- Pagina 2
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.








Difficoltà
Stampa
Download 



