Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Estrarre dati da file XML

    Questa è la struttura del file .xml:

    codice:
    <script>
       <chat>valore</chat>
       <forum>valore</forum>
       <sondaggi>valore</sondaggi>
     <categoria>
        <nome>asp</nome>
        <scripting>vbscript</scripting>
     </categoria>
    </script>
    Recupero i dati di chat, forum e sondaggi cosi:

    codice:
    <%
    Set objXML = Server.CreateObject("msxml2.DOMDocument.3.0")
    
    objXML.async = false
    objXML.setProperty "ServerHTTPRequest", True
    objXML.validateOnParse =false
    objXML.preserveWhiteSpace = false
    
    caricoFile = objXML.Load("percorso.xml")
    
    Set Nodo = objXML.getElementsByTagName("script")
    
    For Each objNodi In Nodo
    	For Each objNodo In objNodi.childNodes
    		Select Case objNodo.nodeName
    			Case "chat"
    				chat= objNodo.firstChild.nodevalue
    			Case "forum"
    				forum= objNodo.firstChild.nodevalue
    			Case "sondaggi"
    				sondaggi= objNodo.firstChild.nodevalue
    		End Select
    	Next
    
    response.write "Chat: "&chat &" / Forum: "&forum &" / Sondaggi: "&sondaggi&"
    "
    
    Next
    
    set Nodo = Nothing
    %>
    Funge tutto perfettamente fino a quando mi limito ad estrarre i campi di chat, forum e sondaggi. Ma se volessi estrarre anche nome e scripting come dovrei fare?


    Grazie

  2. #2

  3. #3
    Anno nuovo, risposta nuova?

  4. #4
    dovresti fare una get anche del nodo 'categoria' poi estrarre i valori

  5. #5
    Avevo già provato ad inglobarlo (a dire il vero anche andando a culo, ovvero mettendolo dentro entrambi i cicli for each), ma va sempre in timeout.

    Avessi l'esigenza di estrarre solo la cat, sarebbe facile, a me serve estrarre tutto su una sola riga per poi inserirli in un database (parliamo di 250.000 record).

  6. #6
    questa funzia, ma non sono convinto che sia il massimo...

    codice:
    <%
    
    response.write ":::INIZIO:::" & "
    "
    
    Set objXML = Server.CreateObject("msxml2.DOMDocument.3.0")
    
    objXML.async = false
    objXML.setProperty "ServerHTTPRequest", True
    objXML.validateOnParse =false
    objXML.preserveWhiteSpace = false
    
    caricoFile = objXML.Load(Server.MapPath("percorso.xml"))
    response.write ".caricofile." & caricofile & "
    "
    
    Set Nodo = objXML.getElementsByTagName("script")
    
    For Each objNodi In Nodo
    	For Each objNodo In objNodi.childNodes
    		Select Case objNodo.nodeName
    			Case "chat"
    				chat= objNodo.firstChild.nodevalue
    			Case "forum"
    				forum= objNodo.firstChild.nodevalue
    			Case "sondaggi"
    				sondaggi= objNodo.firstChild.nodevalue
    			Case "categoria"
    				categoria = objNodo.firstChild.nodevalue
    				Set SubNodo = objXML.getElementsByTagName("categoria")
    				For Each objSubNodi In SubNodo
    					For Each objSubNodo In objSubNodi.childNodes
    						Select Case objSubNodo.nodeName
    							Case "nome"
    								nome = objSubNodo.firstChild.nodevalue
    							Case "scripting"
    								scripting = objSubNodo.firstChild.nodevalue
    						End Select
    					next
    				next
    			response.write	" / Categoria: " & categoria & _
    							" / Nome: " & nome & _
    							" / Scripting: " & scripting & _
    				           "
    "
    		end select
    	Next
    
    	response.write "Chat: " & chat & _
    	               " / Forum: " & forum & _
    	               " / Sondaggi: " & sondaggi & _
    	               "
    "
    
    Next
    
    set Nodo = Nothing
    
    response.write "
    " & ":::FINE:::"
    
    %>

  7. #7
    Ho provato è funzica, però mi hanno passato la nuova struttura del file xml e con questa non va:

    codice:
    <products>
      <product>
         <valoreid>10606135</valoreid> 
         <valorenome>Sony</valorenome> 
         <valorepror>.............</valorepror> 
         <categories>
           <Category>
              <idcat>13</idcat> 
              <nomecat>Auto</nomecat> 
           </Category>
         </categories>
       </product>
    </products>
    dovrei, visto il volume dei dati da importare (circa 25.000 voci), trovare una soluzione performante, intanto però mi interessa riuscire ad estrarre i dati senza intoppi.

  8. #8
    puoi provare a leggere il file xml come recordset. dovrebbe essere più semplice e più performante

  9. #9
    E' una cosa che non ho mai fatto e che comunque potrebbe portarmi dei problemi futuri.

    I campi dovrebbero essere inviati in output cosi:

    codice:
    response.write rs("valoreid")
    vero?

    In questo caso potrebbe sorgere un altro problema, perchè la struttura da quello che ho capito si evolverà a breve e dinventerà (in grassetto l'aggiunta) cosi:

    codice:
    <products>
      <product>
         <valoreid>10606135</valoreid> 
         <valorenome>Sony</valorenome> 
         <valorepror>.............</valorepror> 
         <categories>
           <Category>
              <idcat>13</idcat> 
              <nomecat>Auto</nomecat> 
              <valorenome>xxxx</valorenome>
           </Category>
         </categories>
       </product>
    </products>
    Per cui, anche in base a quello che ho letto, la soluzione più performante mi pare questa, che ne pensi?

  10. #10
    Originariamente inviato da supergeniux
    ...
    Per cui, anche in base a quello che ho letto, la soluzione più performante mi pare questa, che ne pensi?
    "questa" quale?

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.