23 messaggi dal 10 luglio 2003
ho un file xml che ha questa struttura:

<?xml version="1.0" encoding="iso-8859-1"?>
<msgblock><nome>prova</nome>
<msg>ok</msg>
<data>12/10/03 18.20.28</data></msgblock>

per estrarre i dati utilizzo questo script ma mi cerca l'attributo, invece ci sono solo nodi senza attributi, qual'è lo script corretto che dovrei usare?:

<%

' creo un'istanza dell'oggetto XMLDOM
set xmlDom = Server.CreateObject("Microsoft.XMLDOM")
xmlDom.async = false

' leggo il file
xmlDom.Load(Server.MapPath("mess.xml"))

' seleziono un solo nodo
set CurrNode = xmlDom.selectSingleNode("nome")

'For i = 0 To (currNode.length - 1)
'Response.Write "<p>"
Response.write currNode.getAttribute("value")
'Response.Write "</p>"
'Next

set CurrNode = Nothing
Set xmlDom = Nothing
'.getAttribute
%>

7 messaggi dal 13 novembre 2003
Ciao,

hai scritto



per estrarre i dati utilizzo questo script ma mi cerca l'attributo, invece ci sono solo nodi senza attributi, qual'è lo script corretto che dovrei usare?:


For i = 0 To (currNode.length - 1) 
Response.Write "<p>" 
Response.write currNode.getAttribute("value") 
Response.Write "</p>" 
Next 





...ma il codice che hai scritto "sostanzialmente" cerca e scrive SOLO gli ATTRIBUTI... se ho capito bene bene tu voi i valori dei NODI ?

Prima di tutto vorrei essere sicuro che tu abbia capito la differnza tra NODO e ATTRIBUTO:

un NODO: <NODO></NODO>

un ATTRIBUTO: <attributo="valore">

In genere un attributo viene associato ad un nodo


<NODO attributo="valore">
</NODO>



Ora Nel tuo caso, se ho ben capito:


<msgblock>
  <nome>prova</nome> 
  <msg>ok</msg> 
  <data>12/10/03 18.20.28</data>
</msgblock>



Hai 1 NODO (o una radice se non ci sono "Parenti") <msgblock> che al suo interno ha 3 NODI figli: <nome>, <msg>, <data>

Se vuoi conoscere il contenuto dei nodi <nome>, <msg>, <data> che fanno parte del nodo <msgblock> devi fare:


' creo un'istanza dell'oggetto XMLDOM 
set xmlDom = Server.CreateObject("Msxml2.DOMDocument")
xmlDom.async = false 

' leggo il file 
xmlDom.Load(Server.MapPath("mess.xml")) 

' selezioni il nodo <msgblock>
set CurrNode = xmlDom.selectSingleNode("msgblock") 

' ciclo per tutti i nodi "figli" di <msgblock>

For i = 0 To (currNode.length - 1) 
  Response.Write "<p>" 
  Response.write currNode.childNodes(i).text 
  Response.Write "</p>"
Next 

set CurrNode = Nothing 
Set xmlDom = Nothing 



Spero di esserti stato utile e di non aver scritto eresie...
23 messaggi dal 10 luglio 2003
grazie mi hai fatto fare un grosso passo in avanti, ma mi da errore in questa riga:
For i = 0 To (currNode.length - 1)
mi dice:
Tipo di errore:
Errore di run-time di Microsoft VBScript (0x800A01A8)
Necessario oggetto
/guest/guest_asp/read.asp, line 15


Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.