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

    importare file xml in un DB

    Salve a tutti
    è possibile, dato un file xml in input , utilizzando asp importare i dati contenuti nel file in un db?
    ho fatto una ricerca ma non ho trovato nulla di esplicativo
    Grazie

  2. #2
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    Cerca esempi su Microsoft.XMLDOM object
    Con i metodi selectNodes e selectSingleNode peschi i valori dei nodi e costruisci un insert con i valori

  3. #3
    Ok grazie lo sto usando....

    ora però ho un problema...
    codice:
    Dim xmlDom, nodo, i
    set xmlDom = Server.CreateObject("Microsoft.XMLDOM")
    
    xmlDom.async = false
    xmlDom.Load(Server.MapPath("fileProva.xml"))
    
    Set nodo= xmldom.getElementsByTagName("record")
    
    	Response.Write("Primo valore = " & nodo(0).selectSingleNode("primoValore").Text & "
    ")
    	Response.Write("Secondo valore = " & nodo(0).selectSingleNode("secondoValore").Text & "
    ")
    
    Set nodo = Nothing
    Set xmlDom = Nothing
    E così funziona benissimo!

    Però non riesco a ciclare nei nodi....

    Ho fatto questo tentativo:
    codice:
    for i = 0 To 4
    	Response.Write("Primo valore = " & nodo(i).selectSingleNode("primoValore").Text & "
    ")
    	Response.Write("Secondo valore = " & nodo(i).selectSingleNode("secondoValore").Text & "
    ")
    Next
    Ma mi da errore..
    codice:
    Errore di run-time di Microsoft VBScript (0x800A01A8)
    Necessario oggetto: '[object]'
    /importxml/letturaVbScript.asp, line 13
    che sbaglio?

  4. #4
    risolto posto il codice
    ad uso del forum
    codice:
    Dim xmlDom, nodo, i
    set xmlDom = Server.CreateObject("Microsoft.XMLDOM")
    
    xmlDom.async = false
    xmlDom.Load(Server.MapPath("fileProva.xml"))
    
    Set nodo= xmldom.getElementsByTagName("record")
    
    for i = 0 To nodo.Length - 1
    	Response.Write("Primo valore = " & nodo(i).selectSingleNode("primoValore").Text & "
    ")
    	Response.Write("Secondo valore = " & nodo(i).selectSingleNode("secondoValore").Text & "
    ")
    Next
    
    Set nodo = Nothing
    Set xmlDom = Nothing

  5. #5
    Ancora un problem ain questa importazione...
    Se ho un nodo del genere:
    codice:
    <RATING Country="ITA">0</RATING>
    lo 0 lo recupero con
    codice:
    <%=nodo(i).selectSingleNode("RATING").Text%>
    Ma come si fa a recuperare il valore di Country?
    Grazie

  6. #6
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    accedi alla proprieta attributes
    un esempio semplice esplicativo

    XML
    codice:
    <RECORD>
       <RATING Country="ITA">0</RATING>
       <RATING Country="ENG">1</RATING>
       <RATING Country="FRA">0</RATING>
       <RATING Country="TED">1</RATING>
    </RECORD>
    LETTURA
    codice:
    <%
    Dim xmlDom, nodo, i
    set xmlDom = Server.CreateObject("Microsoft.XMLDOM")
    xmlDom.async = false
    xmlDom.Load(Server.MapPath("test.xml"))
    Set nodo= xmldom.documentElement.childNodes
    Dim att
    for each elm in nodo
    	Response.write("nome attributo = " & elm.attributes.item(0).name & "")
    	Response.write("valore attributo = " &  elm.attributes.item(0).text & "")
    	Response.Write("VALORE NODO = " & elm.Text & "
    ")
    	Next
    
    Set nodo = Nothing
    Set xmlDom = Nothing
    %>
    OUTPUT
    codice:
    nome attributo = Country  valore attributo = ITA  VALORE NODO = 0
    nome attributo = Country  valore attributo = ENG  VALORE NODO = 1
    nome attributo = Country  valore attributo = FRA  VALORE NODO = 0
    nome attributo = Country  valore attributo = TED  VALORE NODO = 1
    in attributes.item(0).name trovi il nome del primo attributo
    logicamente come in un array, in item(1) l'eventuale secondo attributo item(2) l'eventuale 3° attributo etc etc

  7. #7
    Grazie funge da paura

  8. #8
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    Figurati,

  9. #9
    Ok sono alle prese con l'ennesiomo problema di questa divolo di importazione...
    A sto punto credo e spero che possa essere l'ultimo...
    mi leggo sto cacchio di file così:
    codice:
    <%@LANGUAGE ="VBSCRIPT"%>
    <%option explicit%>
    <html>
    <head>
    <title>Recupero Dati da XML file</title>
    <link href="fogliDiStile/style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <table cellpadding="0" cellspacing="0" border="1" width="200%">
    	<tr class="verdanaBlu11Bold" align="center">
    		<td>N°</td>
    		<td>Event Id</td>
    		<td>Start Date</td>
    		<td>Start Time</td>
    		<td>Duration</td>
    		<td>EPG</td>
    		<td>EPG Name</td>
    		<td>EPG Sinopsi</td>
    		<td>EPG Log Line</td>
    		<td>Theme</td>
    		<td>Rating</td>
    		<td>Rating Country</td>
    		<td>Product</td>
    		<td>Buy Window</td>
    	</tr>
    <%
    Dim xmlDom, nodoEvento, ne, nodoStart, nodoEpgSect, nodoEpg, nodoEpgRat, nodoAccess, nodoIppvSect
    set xmlDom = Server.CreateObject("Microsoft.XMLDOM")
    
    xmlDom.async = false
    xmlDom.Load(Server.MapPath("file.xml"))
    
    Set nodoEvento = xmldom.getElementsByTagName("EVENT_SECTION")
    Set nodoStart = xmldom.getElementsByTagName("START")
    Set nodoEpgSect = xmldom.getElementsByTagName("EPG_SECTION")
    Set nodoEpg = xmldom.getElementsByTagName("EPG")
    Set nodoEpgRat = xmldom.getElementsByTagName("RATING")
    Set nodoAccess = xmldom.getElementsByTagName("CA_SECTION")
    Set nodoIppvSect = xmldom.getElementsByTagName("IPPV_SECTION")
    
    For ne = 0 To nodoEvento.Length - 1
    %>
    	<tr class="verdanaBlu11" align="center">
    		<td><%=ne%></td>	
    		<td><%=nodoEvento(ne).selectSingleNode("EVENTID").Text%></td>
    		<td><%=nodoStart(ne).selectSingleNode("DATE").Text%></td>
    		<td><%=nodoStart(ne).selectSingleNode("TIME").Text%></td>
    		<td><%=nodoEpgSect(ne).selectSingleNode("DURATION").Text%></td>
    		<td><%=nodoEpg(ne).attributes.item(0).Name%> = <%=nodoEpg(ne).attributes.item(0).Value%></td>
    		<td><%=nodoEpg(ne).selectSingleNode("NAME").Text%></td>
    		<td><%=nodoEpg(ne).selectSingleNode("SYNOPSIS").Text%></td>
    		<td><%=nodoEpg(ne).selectSingleNode("LOG_LINE").Text%></td>
    		<td><%=nodoEpgSect(ne).selectSingleNode("THEME").Text%></td>
    		<td><%=nodoEpgSect(ne).selectSingleNode("RATING").Text%></td>
    		<td><%=nodoEpgRat(ne).attributes.item(0).Name%> = <%=nodoEpgRat(ne).attributes.item(0).Value%></td>
    		<td><%=nodoAccess(ne).Text%></td>
    		<td><%=nodoIppvSect(ne).selectSingleNode("BUYWINDOW").Text%></td>
    	</tr>
    <%
    Next
    
    Set nodoIppvSect = Nothing
    Set nodoAccess = Nothing
    Set nodoEpgRat = Nothing
    Set nodoEpg = Nothing
    Set nodoEpgSect = Nothing
    Set nodoStart = Nothing
    Set nodoEvento = Nothing
    Set xmlDom = Nothing
    %>
    </table>
    </body>
    </html>
    E va benissimo
    Il problema è che alcuni nodi non sempre ci sono ad esempio l'ultimo che leggo è opzionale.
    CHiaramente il ciclo mi va in errore se si verifica sta cosa.
    Come posso intercettarla?
    Ho provato con cose tipo
    codice:
    If Is Null(nodoIppvSect(ne)) then
    o
    codice:
    If nodoIppvSect(ne) = "" then
    Ma non mi si fila e neanche se a
    codice:
    nodoIppvSect(ne)
    Aggiungo
    codice:
    nodoIppvSect(ne).selectSingleNode("BUYWINDOW").Text
    Nelle If...

    Come caspita si fa sta cosa?

  10. #10
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    prova con
    codice:
    if TypeName(nodoIppvSect(ne)) <> "Nothing" then
    o
    codice:
    if varType(nodoIppvSect(ne)) <> 9 then

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.