Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Scrivere tramite ASP in un file XML

    Sto creando un banner in Flash che legge i nomi dei file da un file XML.
    Le immagini appariranno nel banner a rotazione e verranno caricate in maniera casuale.

    I file vengono letti in una cartella nel sever, ma il problema è che il file XML mi chiede:
    - i nomi di file scritti nella forma: foto_1.jpg
    - tutti i nomi dei file da mostrare.

    Pensavo di modificare il file XML tramite ASP. E' possibile?

    La mia idea era questa:
    - i file vengono caricati nella cartella sul server, senza badare ai nomi.
    - vado a leggere il contenuto di quella cartella.
    - scrivo nel file XML i nomi dei file presenti in quella cartella.

    Teoricamente è così... in pratica ho qualche problema.

    Il file XML originale è questo:
    codice:
    <?xml version="1.0"?>
    <!-- 
    set transition number from 1 to 9
    set transition number to 0 for random effect
     -->
    <RSS PAUSE="4000">
    	<IMAGE TRANSITION="1">foto_1.jpg</IMAGE>
    	<IMAGE TRANSITION="1">foto_2.jpg</IMAGE>
    	<IMAGE TRANSITION="1">foto_3.jpg</IMAGE>
    	<IMAGE TRANSITION="1">foto_4.jpg</IMAGE>
    	<IMAGE TRANSITION="1">foto_5.jpg</IMAGE>
    </RSS>
    Questa la mia modifica.
    codice:
    <%@LANGUAGE="VBSCRIPT"%>
    <% Response.ContentType="application/xml" %>
    <?xml version="1.0" encoding="iso-8859-1"?>
    <RSS PAUSE="4000">
    <% 
    
    Dim objFso, objFolder, objFiles, strFolder, strFile 
    strPath = "images/" 
    
    Set objFso = Server.createObject("Scripting.FileSystemObject") 
    Set objFolder = objFso.GetFolder(Server.MapPath(strPath)) 
    Set objFiles = objFolder.Files 
    
    For Each strFile in objFiles 
    Response.Write ("<IMAGE TRANSITION="& chr(34) & "1"& chr(34) & ">")
    Response.Write(strFile.name) 
    Response.Write("<image>")
    Next 
    
    
    Set objFso = Nothing 
    Set objFolder = Nothing 
    Set objFiles = Nothing 
    
    %> 
    </RSS>
    Mi viene restituito un errore. Il titolo della pagina è "Errore di codice feed". I dettagli dell'errore nella pagina sono:
    codice:
    Dichiarazione XML non valida.
     Riga: 2 Carattere: 3
    
    <?xml version="1.0" encoding="iso-8859-1"?>
    Qualche idea?

    Avete qualche altra idea per raggiungere lo stesso obiettivo?
    Scrivere un file XML, inserendovi i nomi dei file presenti in una cartella sul server.

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Credo di aver risolto, ma spero di non aver fatto qualche sciocchezza... :master:


    Visto che l'operazione può essere eseguita più volte (peridodicamente vengono aggiunte o tolte immagini), inizio col cancellare il file XML precedentemente creato (suppongo che il file esista).
    Poi vado a vedere quali file ci sono nella cartella (images, per esempio).
    Creo il file XML, dove gli scrivo tutto il codice e i nomi dei file trovati dentro alla cartella "images". Chiudo il file.

    Questo script, quindi mi produce il file XML che volevo (almeno spero, visto che non ho ancora provato a farglielo leggere da Flash).


    codice:
    <%
    Dim fsoMyFile
    
    Set fsoMyFile = CreateObject("Scripting.FileSystemObject")
    
    fsoMyFile.DeleteFile Server.MapPath("/public/miofile.xml")
    %> 
    
    
    <% 
    
    Dim objFso, objFolder, objFiles, strFolder, strFile 
    strPath = "images/" 
    
    Set objFso = Server.createObject("Scripting.FileSystemObject") 
    Set objFolder = objFso.GetFolder(Server.MapPath(strPath)) 
    Set objFiles = objFolder.Files 
    %>
    
    <%
    Dim tsTextStream
    
    Set fsoMyFile = CreateObject("Scripting.FileSystemObject")
    
    Set tsTextStream = fsoMyFile.OpenTextFile(Server.MapPath("/public/miofile.xml"), 8, True)
    
    tsTextStream.WriteLine("<?xml version="& chr(34) & "1.0"& chr(34) & "?>")
    tsTextStream.WriteLine(" <RSS PAUSE="& chr(34) & "4000"& chr(34) & ">")  
    
    For Each strFile in objFiles 
    tsTextStream.Write ("<IMAGE TRANSITION="& chr(34) & "1"& chr(34) & ">")
    tsTextStream.Write(strFile.name) 
    tsTextStream.Write("</IMAGE>")
    tsTextStream.WriteLine("")
    Next 
    
    tsTextStream.WriteLine("</RSS>")
    
    tsTextStream.Close
    %>

  3. #3
    codice:
    i=1
    For Each strFile in objFiles 
    i=i+1
    tsTextStream.Write ("<IMAGE TRANSITION="& chr(34) & i & chr(34) & ">")
    tsTextStream.Write(strFile.name) 
    tsTextStream.Write("</IMAGE>")
    tsTextStream.WriteLine("")
    Next
    se lo metti come avevi scritto tu il file te lo stampa sempre con
    <IMAGE TRANSITION="1">img.jpg</IMAGE>


    P.S. MetallicA Rulez!!!!!!
    ...Se avanzo seguitemi... Se indietreggio uccidetemi...
    BiteFight... arruolati con me e non te ne pentirai

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Grazie per la risposta!

    Io voglio che mi scriva sempre 1. Nel file di Flash ci sono diversi tipi di transizioni delle immagini (sono indicate da un numero), io ho scelto la numero 1.

    Ho completato il file, facendo stampare a video i file presenti nella cartella (che sono poi gli stessi scritti nel file XML) e mi mostra tutti i file, non sempre lo stesso file.
    Ho controllato il file XML e sono stati inseriti tutti i file.

    Adesso il file completo è così:
    codice:
    <%
    Dim fsoMyFile
    
    Set fsoMyFile = CreateObject("Scripting.FileSystemObject")
    fsoMyFile.DeleteFile Server.MapPath("../public/images.xml")
    
    
    
    Dim objFso, objFolder, objFiles, strFolder, strFile 
    
    strPath = "panoramiche/" 
    
    Set objFso = Server.createObject("Scripting.FileSystemObject") 
    Set objFolder = objFso.GetFolder(Server.MapPath(strPath)) 
    Set objFiles = objFolder.Files 
    
    
    Dim tsTextStream
    
    Set fsoMyFile = CreateObject("Scripting.FileSystemObject")
    
    Set tsTextStream = fsoMyFile.OpenTextFile(Server.MapPath("../public/images.xml"), 8, True)
    
    
    tsTextStream.WriteLine("<?xml version="& chr(34) & "1.0"& chr(34) & "?>")
    tsTextStream.WriteLine(" <RSS PAUSE="& chr(34) & "4000"& chr(34) & ">")  
    
    For Each strFile in objFiles 
    tsTextStream.Write ("<IMAGE TRANSITION="& chr(34) & "1"& chr(34) & ">")
    tsTextStream.Write(strFile.name) 
    tsTextStream.Write("</IMAGE>")
    tsTextStream.WriteLine("")
    Next 
    
    tsTextStream.WriteLine("</RSS>")
    
    tsTextStream.Close
    
    Response.Write("Il file XML è stato aggiornato!")
    Response.Write("
    
    ")
    Response.Write("Sono stati inseriti i seguenti file:")
    
    Response.Write("
    1. ") For Each strFile in objFiles Response.Write("
    2. ") Response.Write(strFile.name) Response.Write("") Next Response.Write("
    ") Set objFso = Nothing Set objFolder = Nothing Set objFiles = Nothing %>
    P.S.

  5. #5
    quindi ti stampa
    <IMAGE TRANSITION="1"></IMAGES>
    <IMAGE TRANSITION="2"></IMAGES>
    <IMAGE TRANSITION="3"></IMAGES>
    <IMAGE TRANSITION="4"></IMAGES>
    ... ecc??
    strano!
    ps: hell'yeah!!
    ...Se avanzo seguitemi... Se indietreggio uccidetemi...
    BiteFight... arruolati con me e non te ne pentirai

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    No! Mi stampa questo (ti riporto quello che c'è in un file XML che ho creato tramite questo file ASP):

    codice:
    <?xml version="1.0"?>
     <RSS PAUSE="4000">
    <IMAGE TRANSITION="1">foto_1.jpg</IMAGE>
    <IMAGE TRANSITION="1">foto_2.jpg</IMAGE>
    <IMAGE TRANSITION="1">foto_3.jpg</IMAGE>
    <IMAGE TRANSITION="1">foto_4.jpg</IMAGE>
    <IMAGE TRANSITION="1">foto_5.jpg</IMAGE>
    <IMAGE TRANSITION="1">foto_6.jpg</IMAGE>
    <IMAGE TRANSITION="1">foto_7.jpg</IMAGE>
    </RSS>

  7. #7
    eh appunto...
    non dovrebbe essere

    <?xml version="1.0"?>
    <RSS PAUSE="4000">
    <IMAGE TRANSITION="1">foto_1.jpg</IMAGE>
    <IMAGE TRANSITION="2">foto_2.jpg</IMAGE>
    <IMAGE TRANSITION="3">foto_3.jpg</IMAGE>
    <IMAGE TRANSITION="4">foto_4.jpg</IMAGE>
    <IMAGE TRANSITION="5">foto_5.jpg</IMAGE>
    <IMAGE TRANSITION="6">foto_6.jpg</IMAGE>
    <IMAGE TRANSITION="7">foto_7.jpg</IMAGE>
    </RSS>

    come lo hai fatto tu ti dovrebbe andare in errrore
    ...Se avanzo seguitemi... Se indietreggio uccidetemi...
    BiteFight... arruolati con me e non te ne pentirai

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Nel file di Flash ho 10 diversi tipi di transizioni (a dissolvenza, a scacchi, ecc.), ogni transizione è richiamabile dal file XML con un numero.

    Volgio che tutte le immagini si susseguano una sull'altra con lo stesso tipo di transizione (per esempio, la numero 1: a dissolvenza, ).
    Se il numero cambiasse, avrei un effetto di transizione diverso per ogni singola immagine.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.