Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Area Aziende Cocktail Registrazione domini



Utilizzo combinato di XMLDOM ed XMLHTTP con ASP

Home + Articoli + XML + Articolo # 147
Autore: Luca Ruggiero

Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.


I due oggetti di casa Microsoft XMLDOM ed XMLHTTP sono nati entrambi per accedere e per manipolare documenti XML; il primo sfrutta a pieno le caratteristiche del Document Object Model (DOM), mentre il secondo sfrutta il protocollo HTTP per accedere a documenti XML e non.

XMLDOM è più completo e molto più ricco di proprietà, metodi e collezioni, mentre la forza di XMLHTTP si basa sulla velocità e sulla trasparenza della trasmissione dati.

Fondamentalmente si tratta di due oggetti differenti che, tuttavia, possono collaborare tra loro; di seguito la struttura del file XML di esempio rubrica.xml
<?xml version="1.0"?>
<database>
    <utenti>
        <nome>Max</nome>
        <cognome>Bossi</cognome>
    </utenti>
    <utenti>
        <nome>Luca</nome>
        <cognome>Ruggiero</cognome>
    </utenti>
    <utenti>
        <nome>Claudio</nome>
        <cognome>Garau</cognome>
    </utenti>
</database>
L'esempio di codice, implementato in ASP, accede al file XML appena creato attraverso XMLHTTP, carica la struttura XML nel DOM ed attraverso il DOM legge e stampa a video i dati
<%@LANGUAGE = VBScript%>
<%
    ' Dichiaro le variabili che mi servono nello script
    Dim file, objXmlHttp, objXmlDom, nome, cognome, i

    ' Specifico il file XML da utilizzare
    file = Server.MapPath("rubrica.xml")

    ' Imposto l'oggetto XMLHTTP e recuper il file XML
    Set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
        objXmlHttp.Open "GET", file, False
        objXmlHttp.Send

    ' Imposto l'oggetto XMLDOM e carico il file XML come stringa
    Set objXmlDom = Server.CreateObject("Microsoft.XMLDOM")
        objXmlDom.async = False
        objXmlDom.loadXML(objXmlHttp.responseText)

    ' Recupero i nodi del file XML
    Set nome = objXmlDom.getElementsByTagName("utenti/nome")
    Set cognome = objXmlDom.getElementsByTagName("utenti/cognome")

    ' Inizializzo il contatore per il ciclo
    i = 0

    ' Estraggo tutti i dati
    For i = 0 To nome.length - 1
        With Response
            .Write "Nome: " & nome(i).Text & "<br>"
            .Write "Cognome: " & cognome(i).Text & "<br><br>"
        End With
    Next

    ' Un po di pulizia...
    Set nome = Nothing
    Set cognome = Nothing
    Set objXmlDom = Nothing
    Set objXmlHttp = Nothing
%>
Come vedete non abbiamo utilizzato il metodo load di XMLDOM per recuperare il file (dato che l'XML lo recuperiamo con XMLHTTP) bensì il metodo loadXML, il cui scopo è quello di recuperare una stringa contenente una struttura XML, struttura creata attraverso la proprietà responseText di XMLHTTP.

© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones