Problema lettura file xml
RobyT83 non è online. Ultima attività: 03/09/2008 16.31.38RobyT83
Inserito il: 22 luglio 2008 11.30
92 messaggi dal 25 gen 2007 Istalla Microsoft Silverlight!
Ho questo tipo di file xml

-<annuncio>
-<agenzia>
-<info_agenzia>
</agenzia>
-<info immobili>
</immobili>
-<file_allegati>
<allegato>
</allegato>

</file_allegati>
</annuncio>

Adesso in alcuni file xml la parte in grasetto non viene mensionata e quindi la pagina asp che mi legge il file xml mi và in errore, come posso ovviare a questo problema?
RE: Problema lettura file xml
makbox non è online. Ultima attività: 26/08/2008 14.26.48makbox
Inserito il: 22 luglio 2008 12.12
20 messaggi dal 24 mag 2002 Istalla Microsoft Silverlight!
Con cosa stai leggendo il file?

Marco.

RE: Problema lettura file xml
RobyT83 non è online. Ultima attività: 03/09/2008 16.31.38RobyT83
Inserito il: 22 luglio 2008 12.26
92 messaggi dal 25 gen 2007 Istalla Microsoft Silverlight!
con xmldom
RE: Problema lettura file xml
makbox non è online. Ultima attività: 26/08/2008 14.26.48makbox
Inserito il: 23 luglio 2008 14.30
20 messaggi dal 24 mag 2002 Istalla Microsoft Silverlight!
Se l'errore ti viene alzato qundo chiami il load del file ti consiglio di verificare l'errore interroganodo le proprietà objXML.parseError.reason e objXML.parseError.errorCode dell'oggetto XMLDOM.

Se invece l'errore è generato dal tuo codice direi che potrebbe essere sufficiente aggiungere il controllo che il nodo <allegato> ci sia o meno.

Comunque, se l'XML è semplice come quello che hai postato, io preferisco "puntare" il valore dei nodi direttamente con: getElementsByTagName("[tagname]") se la lista di nodi contiene almeno un elemento ne ottengo il valore.

In questo caso il controllo è abbastanza semplice.

Ciao, Marco.

RE: Problema lettura file xml
RobyT83 non è online. Ultima attività: 03/09/2008 16.31.38RobyT83
Inserito il: 23 luglio 2008 17.13
92 messaggi dal 25 gen 2007 Istalla Microsoft Silverlight!
makbox ha scritto:
Comunque, se l'XML è semplice come quello che hai postato, io preferisco "puntare" il valore dei nodi direttamente con: getElementsByTagName("[tagname]") se la lista di nodi contiene almeno un elemento ne ottengo il valore.

In questo caso il controllo è abbastanza semplice.

Ciao, Marco.


L'xml nella parte allegato è strutturato in questo modo:
<file_allegati>
<allegato id="0">
<id>0</id>
<file_path>Valore</file_path>
</allegato>
<allegato id="1">
<id>1</id>
<file_path>Valore</file_path>
</allegato>
<allegato id="2">
<id>1</id>
<file_path>Valore</file_path>
</allegato>
</file_allegati>

Infatti per verificare se c'é qualkosa all'interno del file_allegati, utilizzo getElementsByTagName() faccio un controllo se è vuoto altrimenti procendo al controllo del tag allegato, il mio problema è verificare quanti allegati ci siano all'interno del tag, perché potrebbe capitare che un file XML abbia 6 allegati, ma un altro ne potrebbe avere solo 3 (in questo caso la pagina mi và in errore) perché avendo io inserito 6 variabili 3 non vengono inizializzate e quindi mi si blocca il tutto.

Spero di essere stato chiaro nella spiegazione e grazie per le risposte.
RE: Problema lettura file xml
makbox non è online. Ultima attività: 26/08/2008 14.26.48makbox
Inserito il: 23 luglio 2008 18.58
20 messaggi dal 24 mag 2002 Istalla Microsoft Silverlight!
Perfetto, allora invece che valorizzare sei variabili potresti riempire un array.

In VBScript:

Dim myArray()

If [controllo se esiste un determinato allegato ] Then

Redim Preserve myArray( Ubound(myArray) + 1 )
myArray(Ubound(myArray)) = [allegato esistente]

End If



Alla fine tutto quello che devi fare con gli allegati lo fai in un ciclo di for sull'array.

Marco.

P.S. Verifica il codice VBScript è un bel pò che non lo uso....

RE: Problema lettura file xml
m.casati non è online. Ultima attività: 05/09/2008 17.11.08m.casati
Inserito il: 24 luglio 2008 09.01
contributi / Top Poster / Community manager / www.guru4.net / Blog / 2303 messaggi dal 13 giu 2001 Istalla Microsoft Silverlight!
makbox ha scritto:
P.S. Verifica il codice VBScript è un bel pò che non lo uso....

Ma se proprio ieri ti ho visto alle prese con una pagina in classic asp

Matteo Casati
GURU4.net
RE: Problema lettura file xml
RobyT83 non è online. Ultima attività: 03/09/2008 16.31.38RobyT83
Inserito il: 24 luglio 2008 09.59
92 messaggi dal 25 gen 2007 Istalla Microsoft Silverlight!
Grazie, per le risposte ho risolto in un altro modo.

Praticamente questo è il codice:

Set fotoallegate = objXmlDom.getElementsByTagName("file_allegati")
if Not fotoallegate(i).text = "" Then
Set fotoallegate1 = objXmlDom.getElementsByTagName
("file_allegati/allegato/file_path")

Dim h
h = 0
For h = 0 To fotoallegate1.length - 1
If h = "0" Then
Set foto1 = objXmlDom.getElementsByTagName
("file_allegati/allegato/file_path")
foto1 = foto1(h).text
End If
If h = "1" Then
Set foto2 = objXmlDom.getElementsByTagName
("file_allegati/allegato/file_path")
foto2 = foto2(h).text
End If
.
.
.
If h = "6" Then
Set foto3 = objXmlDom.getElementsByTagName
("file_allegati/allegato/file_path")
foto3 = foto3(h).text
End If
Next

Questa è un'alternativa un pò pesantina a livello di codice, ma credo che nel mio caso sia abbastanza efficace.
In questo caso carico solo l'effettivo numero, ma non più di 6 allegati che si trovato all'interno del file xml.

Vai a:
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.


maltra - 761 pt
vladimiro - 502 pt
fabrica - 180 pt

Ultimi vincitori: fabrica, vladimiro, PeppeDotNet

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008 + Windows Server 2008, ReShaper e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums