-
Xml e asp
Salve a tutti
ho la necessità di fare una paginazione per un file xml
questo è il codice che uso per visualizzare tutto l'xml che vorrei visualizzare in + pagineDovrei giocare con il ciclo
For Each objNodi In Nodo, ma ho bisogno di una spinta
sapete darmi una mano ?Sub parser_XML(percorso_XML)
'Inizializziamo il Parser MS XML...
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = false
objXML.setProperty "ServerHTTPRequest", True
objXML.validateOnParse =false
objXML.preserveWhiteSpace = false'Carica il file XML
strFile = percorso_XML
caricoFile = objXML.Load(percorso_XML)If Not caricoFile Then response.write "Errore di caricamento" else 'response.write "caricato" Set Nodo = objXML.getElementsByTagName("product") For Each objNodi In Nodo For Each objNodo In objNodi.childNodes Select Case objNodo.nodeName Case "name" nome = objNodo.firstChild.nodevalue Case "description" descrizione = objNodo.firstChild.nodevalue Case "imageUrl" imageUrl = objNodo.firstChild.nodevalue Case "price" prezzo = objNodo.firstChild.nodevalue Case "productUrl" productUrl = objNodo.firstChild.nodevalue End Select Next response.write "<table>"&vbcrlf response.write "<tr><td><h2>"&nome&"</h2></td></tr>"&vbcrlf response.write "<tr><td>"&descrizione&"</td></tr>"&vbcrlf response.write "<tr><td><img src="""&imageUrl&"""></td></tr>"&vbcrlf response.write "<tr><td>? "&prezzo&"</td></tr>"&vbcrlf response.write "<tr><td><a href="""&productUrl&""">Acquista</a></td></tr>"&vbcrlf response.write "</table>"&vbcrlf Next end if
end sub
-
Ciao scura
ho modificato qualche riga del tuo codice. In questo modo potrai passare via querystring la variabile n, tale n costituirà lo start, cioè il prodotto che sarà visualizzato per primo (come vedi nel codice saranno visualizzati 10 prodotti per pagina a partire da n). Lascio a te il completamento del codice con i pulsanti di navigazione (avanti, indietro etc...) a tuo piacimento.
In grassetto le modifiche che ho apportato:
<% Set objXML = Server.CreateObject("Microsoft.XMLDOM") objXML.async = false objXML.setProperty "ServerHTTPRequest", True objXML.validateOnParse = false objXML.preserveWhiteSpace = false 'Carica il file XML strFile = percorso_XML caricoFile = objXML.Load(Server.MapPath("articoli.xml")) If Not caricoFile Then response.write "Errore di caricamento" Else ** n = Request("n") If n = "" or not IsNumeric(n) then n = 0** 'response.write "caricato" Set Nodo = objXML.getElementsByTagName("articolo") **For i = n to n+10** **If i <= Nodo.length-1 then** For Each objNodo In Nodo**(i)**.childNodes Select Case objNodo.nodeName Case "name" nome = objNodo.firstChild.nodevalue Case "description" descrizione = objNodo.firstChild.nodevalue Case "imageUrl" imageUrl = objNodo.firstChild.nodevalue Case "price" prezzo = objNodo.firstChild.nodevalue Case "productUrl" productUrl = objNodo.firstChild.nodevalue End Select Next response.write "<table>"&vbcrlf response.write "<tr><td><h2>"&nome&"</h2></td></tr>"&vbcrlf response.write "<tr><td>"&descrizione&"</td></tr>"&vbcrlf response.write "<tr><td><img src="""&imageUrl&"""></td></tr>"&vbcrlf response.write "<tr><td>€ "&prezzo&"</td></tr>"&vbcrlf response.write "<tr><td><a href="""&productUrl&""">Acquista</a></td></tr>"&vbcrlf response.write "</table>"&vbcrlf ** Else Exit For** **End if** Next End if %>
PS: ricorda che Nodo è in base 0 quindi con n = 1 vusualizzerai la lista a partire dal secondo prodotto.
Ciao.
-
Madai grazie 1000
ora mi metto all'opera
solo una domanda: dato che l'xml è molto pesante ... credi ci sarebbero forti rallentamenti nel caso in cui la pagina che legge questo megaXML fosse consultata da molti utenti contemporaneamente ?
ps. Questo forum è il migliore !!!! ho ancora la brutta abitudine di consultare un'altro forum .... dopo molte ricerche lì ho trovato solo gente che aveva il mio stesso problema ma nessuna risposta, poi ho deciso di chiedere aiuto qui e in pochi minuti è arrivata la spintarella.
-
In effetti è tutto molto leto anche se ci sono solo io a fare le prove
leggendo in rete ho scoperto l'esistenza di xquery
sapete dirmi qualcosa? anche se credo sia OT con l'argomento specifico di questa sezione del forum.
in alternativa credo posso solo copiare l'xml in un db e fine del cinema....
un consiglio ?
-
@scura said:
In effetti è tutto molto leto anche se ci sono solo io a fare le prove
leggendo in rete ho scoperto l'esistenza di xquery
sapete dirmi qualcosa? anche se credo sia OT con l'argomento specifico di questa sezione del forum.
in alternativa credo posso solo copiare l'xml in un db e fine del cinema....
un consiglio ?
Quanto pesa questo file xml?
-
Il file pesa circa 50 mb
infatti ho copiato tutto in un db e fine del cinema, però se hai qualche idea sono curiosaps.
Io non ricevo + i messaggi quando qualcuno aggiunge un post ad una discussione alla quale partecipo....
-
@scura said:
ps.
Io non ricevo + i messaggi quando qualcuno aggiunge un post ad una discussione alla quale partecipo....Le notifiche dei messaggi vanno configurate nel tuo Pannello di Controllo.
-
@scura said:
Il file pesa circa 50 mb
infatti ho copiato tutto in un db e fine del cinema, però se hai qualche idea sono curiosaps.
Io non ricevo + i messaggi quando qualcuno aggiunge un post ad una discussione alla quale partecipo....Personalmente per 50mb di dati userei un database senza dubbio, credo sia la soluzione più performante.
Puoi comunque provare ad usare ASP.NET... magari ci fai sapere
Ecco un tutorial (in inglese): http://www.codeproject.com/aspnet/XSLTransform.asp
Ciao
-
Grazie 1000 Madai per i suggerimenti , anche se asp.net mi fa venire il mal di pancia
Visto anche nella pagina del profilo personale come ricevere le notifiche delle disc.
ciaoooooo
-
@scura said:
Grazie 1000 Madai per i suggerimenti , anche se asp.net mi fa venire il mal di pancia
Visto anche nella pagina del profilo personale come ricevere le notifiche delle disc.
ciaoooooo
Prego
A presto