12 messaggi dal 14 dicembre 2001
Salve ragazzi, chiedo l'ennesimo aiuto per la gestione degli XML con ASP...

Dunque, ho un ciclo che mi legge i vari nodi di un XML e ne stampa l'output in questo modo:
for i=0 to xmlDoc.responseXML.selectNodes("//risultati").length-1 
id = xmlDoc.responseXML.selectNodes("//risultati/hotelid")(i).text 
url = xmlDoc.responseXML.selectNodes("//risultati/url")(i).text 
...
etc

Response.write id &url &descrizione &etc...

e fin qui tutto ok.
Il problema è che ho un campo "descrizione" che può esserci come no. Ovviamente se ne vado a leggere il contenuto e non c'è mi da errore, allora ho pensato di bypassare il problema così:

If Not xmlDoc.responseXML.selectNodes("//risultati/description")(i) is nothing then
descrizione = xmlDoc.responseXML.selectNodes("//risultati/description")(i).text 
Else
descrizione = "descrizione mancante"
End if

Response.write id &url &descrizione &etc...



E anche questo in teoria funziona...
La cosa assurda però è che se si verifica appunto che il campo description manca, nella variabile descrizione non viene memorizzato "descrizione mancante" ma il contenuto del nodo "description" successivo!!!!

Questo ovviamente comporta un osfalsamento delle descrizioni relativamente ai rispettivi record, con l'effetto assurdo di stamparmi il testo "descrizione mancante" all'ultimo nodo!
In pratica se un nodo manca viene memorizzato il valore del successivo facendo scalare tutti gli altri e quindi perdendo ogni corrispondenza...

Qualcuno ci capisce qualcosa? Come porre rimedio? Oppure, esiste un modo diverso e più efficace per testare l'esistenza di un nodo e memorizzarne il contenuto solo in questo caso?

Confido in voi, grazie mille e a presto!
7 messaggi dal 04 marzo 2005
Anche a me fa la stessa cosa, prende il valore del nodo successivo e poi è un macello... tu hai risolto?

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.