Newsgroup: it.comp.www.asp
Titolo: ASP+XML

Ciao a tutti,
dovrei fare una galleria fotografica che "pesca" il nome dei file non da un
database ma da un file XML, mi date qualche dritta, magari qualche tutorial.
Fin'ora l'ho sempre fatto con .asp  + access (o altri DBMS) ma mi è stato
chiesto specificatamete di creare il database in XML, Grazie a tutti,
ciao!!!!

Supponiamo che tu abbia un file XML chiamato esempio.xml
fatto cosě:
<?xml version="1.0" encoding="iso-8859-1"?>
<prodotti>
  <prodotto id="1" nome="pesce">pesce.gif</prodotto>
  <prodotto id="2" nome="cane">cane.gif</prodotto>
</prodotti>
L'oggetto che devi utilizzare si chiama MSXML2.DOMDocument.4.0.
<%
'Oggetto XML
Set objXML = Server.CreateObject("Msxml2.DOMDocument.4.0")
'Carico i dati XML
objXML.async = False
objXML.load(Server.MapPath("esempio.xml"))
'Procedo all'aggiornamento
set objData = objXML.selectSingleNode("prodotti/prodotto[@id='1']")
response.write objData.XML
set objData = nothing
'Pulizia
Set objXML = nothing
%>
In questo modo stampi il contenuto del nodo prodotto con id = 1.
Analogamente per il nome. Se volessi mostrare una tabella
<table>
<%
'Oggetto XML
Set objXML = Server.CreateObject("Msxml2.DOMDocument.4.0")
'Carico i dati XML
objXML.async = False
objXML.load(Server.MapPath("esempio.xml"))
'Procedo all'aggiornamento
set objData = objXML.selectNodes("//prodotto")
for each nodo in objData
%><tr><td><%=nodo.xml%></td></tr><%
next
set objData = nothing
'Pulizia
Set objXML = nothing
%>
</table>
Ciň che scrivi nelle selectSingleNode o selectNodes č un
linguaggio di ricerca simile a SQL e si chiama XPath.
Ciao
Lorenzo

ciao k
Per creare file XML ci sono molti modi:
1. Essendo un file di testo lo puoi scrivere con il Notepad e
salvare in .XML Aprilo con il browser per essere sicuri che
sia scritto correttamente.
2. Puoi usare qualche programma che ti permette di inserire
i nodi XML già in formato corretto, risparmiandoti tempo e
fatica. Non so suggerirti uno specifico programma. Prova
a googolare cercando "XML Editor"
3. Puoi crearlo dinamicamente e anche qui puoi usare due
modi:
3a. Lo puoi memorizzare in una stringa
<%
'Inizializzo le Variabili
Dim xmlDoc, root
Dim xmlContent, success
Dim xmlData
Dim i
'Creo l' oggetto MsXML2.DOMDocument
Set xmlDoc = Server.CreateObject("msxml2.DOMDocument")
'Creo il Documento XML
xmlContent = "<libreria>"
xmlContent = xmlContent & "<libro>ASP</libro>"
xmlContent = xmlContent & "<libro>XML</libro>"
xmlContent = xmlContent & "<libro>HTML</libro>"
xmlContent = xmlContent & "</libreria>"
'Fine Creazione XML
'Controllo se il File XML sia stato caricato Correttamente
success = xmlDoc.loadXML(xmlContent)
If success = True Then
     'Visualizzo tutti i dati nel File XML
     set xmlData = xmlDoc.getElementsByTagName("libreria/libro")
     For i = 0 To (xmlData.length - 1)
          Response.Write "<li>" & xmlData.Item(i).xml
     Next
     set xmlData = nothing
     'Fine visualizzazione
Else
     Response.Write "Impossibile caricare il File XMl... " &
Server.HTMLEncode(xmlContent)
End If
'Salviamo il File XML
xmlDoc.save Server.Mappath("libreria.xml")
'Pulizia degli oggetti
Set xmlDoc = Nothing
%>
3b. Oppure puoi usare le funzioni di aggiunta dei
singoli nodi che ti sono messe a disposizione
dall'MSXML, creando nodi con la createNode e
collegandoli tra loro con l'appendChild. 
Ciao
Lorenzo