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:
codice:
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ì:
codice:
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!