Visualizzazione dei risultati da 1 a 10 su 10

Discussione: scivere xml

  1. #1

    scivere xml

    Buongiorno!
    Io e asp nn andiamo d'accordo!!
    Ho cercato su questo forum, su altri, nel web, ma non mi sono chiarito le idee!!

    mi servirebbe uno script che scriva su un file xml, cercando ho trovato questo che aggiunge un record in coda ai record già presenti nel file.

    Codice PHP:
    <%@ Language=JavaScript %>


    <%
    var 
    to_do String(Request("to_do"));

    var 
    this_script_url String(Request.ServerVariables("SCRIPT_NAME"));

    // Se la variabile "to_do" è stata impostata creo un file system
    // object che servirà per scrivere all'interno del file messaggi.xml
    // che è il file che memorizza le firme dei visitatori.
    // Questo file dev'essere all'interno della stessa direcoty nella quale
    // gira lo script!!!

    var guest_book_file "messaggi.xml";

    // setto il percorso assoluto del file

    var abs_path =  String(Request.ServerVariables("PATH_TRANSLATED"));

    // apro il file messaggi.xml che è stato messo nella variabile "guest_book_file"

    var file_to_open abs_path.replace(/\\\w*\.asp/,"\\") + guest_book_file;

    fso = new ActiveXObject("Scripting.FileSystemObject");

    // Verifico se il file da aprire effettivamente esiste, se si procedo con la procedura di inserimento

    if (fso.FileExists(file_to_open)){

        
    ////////////////////////////////////////////////////////////////////
        // Se la variabile "to_do" è settata sul valore "add_entry"
        // bisogna inserire i nuovi dati relativi alla firma del visitatore
        

        //if (to_do == "add_entry"){
            
            // creo TextStream object in appending mode, ovvero aggiungo in coda i nuovi dati

            
    var ForReading 1ForWriting 2ForAppending 8;
            
    fs_stream fso.OpenTextFile(file_to_open,ForAppending);

            
    // Ecco i dati che sono pervenuti: Nome e Messaggio

            
    var nome,msg;
            var 
    nome String(Request("nome"));
            var 
    msg String(Request("msg"));

            
    // Creo un oggetto per la data, che inserirò assieme ai dati del visitatore

            
    date_object = new Date();
            
    date_string date_object.toString()

            
    // Creo la stringa che dovrà essere aggiunta in coda ai dati già presenti nel file messaggi.xml
            // e dò a questi dati una formattazione tipo XML
            
            
    fs_stream.Write("<item><testo><![CDATA[" msg "]]></testo><nome>" nome "</nome><dat>" date_string "</dat></item>");

            
    // chiudo l'oggetto TextStream object

            
    fs_stream.close();
            
    // Restituisco la variabile "att" settata sul valore "ok" in modo che il filmato flash SWF
            // capisca che l'operazione è stata conclusa ed è andata a buon termine
            
    Response.Write("_root.agg.att=ok");

            
    //} // end if (to_do == "add entry")

        
    // end if file exists

    // se il file da aprire non esiste restituisco un messaggio d'errore
    else {
        
    Response.Write("_root.agg.att=error");
        }
    %> 
    Ma l'xml che genera ha una struttura tipo:
    codice:
           <item>		
    		<testo><![CDATA[messaggio inserito1]]></testo>
    		<nome>nome utente1</nome>
    		<dat><![CDATA[wed 20 16:16]]></dat>			
    	</item>
           <item>		
    		<testo><![CDATA[messaggio inserito2]]></testo>
    		<nome>nome utente2</nome>
    		<dat><![CDATA[wed 21 16:20]]></dat>			
    	</item>
    mentre a me serve che abbia una struttura tipo:
    codice:
    <?xml version="1.0" encoding="iso-8859-1"?>
    
    <lista>	
    	<item>		
           <item>		
    		<testo><![CDATA[messaggio inserito1]]></testo>
    		<nome>nome utente1</nome>
    		<dat><![CDATA[wed 20 16:16]]></dat>			
    	</item>
           <item>		
    		<testo><![CDATA[messaggio inserito2]]></testo>
    		<nome>nome utente2</nome>
    		<dat><![CDATA[wed 21 16:20]]></dat>			
    	</item>
    </lista>
    come posso modificare l'asp perchè mi crei l'xml che serve a me?
    aiutatemi perfavore è 2 giorni che ci sto sclerando!
    grazie!!

  2. #2

  3. #3
    ciao

    anche io stavo sbattendo la testa contro il muro per fare un xml

    alla fine ho risolto scrivendo un semplicissimo file di testo e poi trasformando il .txt in .xml


    ti posto un esempio di codice da modificare come vuoi

    codice:
    dim fs,tfile
    
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set tfile=fs.CreateTextFile(Server.MapPath("nomefile.txt"))
    tfile.WriteLine("<?xml version=""1.0""?>")
    tfile.WriteLine("<trackList>")
    
    
    tfile.WriteLine("<track><title>"&artist&"</title><location>http://www.xxx.com</location><info></info></track>")
    
    
    tfile.WriteLine("</trackList>")
    tfile.WriteLine("</playlist>")
    tfile.close
    fs.moveFile Server.MapPath("nomefile.txt"), Server.MapPath("nomefile.xml") 
    set tfile=nothing
    set fs=nothing
    l'unico problema è che non so se si possono modificare riga per riga
    mentre interagendo con il dom xml puoi aggiungere direttamente nodi padre e figlio (e spirito santo)

  4. #4
    ehm..
    io ci capisco poco di asp, ma perchè scrivere un txt e poi trasformarlo in xml??

    Lo script che ho postato funziona (quasi!) ma mi scrive tutto dopo il nodo padre..
    è quello il problema..
    sto a impazzì!!!
    aiutatemeeee!

  5. #5
    principalmente perkè per scrivere un file xml bisogna eseguire determinati comandi
    ovvero bisogna conoscerli e capirli

    un file di testo invece lo scrivi riga per riga
    di conseguenza puoi scriverci quello che vuoi



    cmq nn so' proprio dove aiutarti nel tuo script, io uso solitamente VB per l'asp :\

  6. #6
    grazie mille comunque ragepunk..
    speriamo che qualcuno possa aiutarmi..o sono nella cacca!!

    AIUUUUUUTTTTTTOOOO

  7. #7
    codice:
    strXml="<?xml version=""1.0""?><lista>"
    
    for i=1 to 10
    
    	strXml=strXml & "<item><testo><![CDATA[messaggio numero " & i & "]]></testo>"
    	strXml=strXml & "<nome>nome utente " & i & "</nome>"
    	strXml=strXml & "<dat><![CDATA[data messaggio " & i & "]]></dat></item>"
    next
    
    strXml=strXml & "</lista>"
    
    response.ContentType="text/xml"
    response.write strXml
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    uhm..grandissimoooo!!!

    ok ma quel codice come lo inserisco nel mio script?
    sottolineo ancora che di asp ci capisco poco e niente!!!

    però scusa, da quello che ho capito, lo script che hai postato riscrive ogni volta l'xml da zero.. o sbaglio?se è così mi sovrascrive i record precedenti ..no?

    grazie mille Santino83_02

  9. #9

  10. #10
    Originariamente inviato da sha
    uhm..grandissimoooo!!!

    ok ma quel codice come lo inserisco nel mio script?
    sottolineo ancora che di asp ci capisco poco e niente!!!

    però scusa, da quello che ho capito, lo script che hai postato riscrive ogni volta l'xml da zero.. o sbaglio?se è così mi sovrascrive i record precedenti ..no?

    grazie mille Santino83_02

    questo script scrive "al volo" un xml....o meglio, stampa a video non del testo ma un xml, senza salvarlo in maniera fissa da nessuna parte....in pratica ogni volta che richiami la tua pagina lui prende e ti scrive l'xml richiesto.

    per come riempire i dati mi spiace, ma ti lascio alle guide di base all'asp che trovi qui sul forum
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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 © 2026 vBulletin Solutions, Inc. All rights reserved.