Nota: Devi essere registrato per poter inserire un messaggio. Per registrarti, clicca qui. La Registrazione è semplice e gratuita!
V I S U A L I Z Z A D I S C U S S I O N E
ciccio007
Inserito il - 11/07/2009 : 18:50:44 Ciao a tutti! Mi resta un dubbio su xml e dom con javascript. Come faccio a far ciclare l'iterazione all'interno di un file id questo tipo? <radice> <elemento id="01"> <email>ciccio@ciccio.ciccio</email> <email>ciccio@ciccio.ciccio</email> <email>ciccio@ciccio.ciccio</email> </elemento>
Il primo elemento con id = 01 ha 3 email,e l'altro invece ne ha solo una. Se faccio qualcosa del tipo:
for (var i=0;i<elemento.length;i++) { document.writeln(elemento[i].getAttribute("id")); //stampa con successo tutti gli id
for (var j=0;j<email.length;j++) { //stampo email di ogni elemento document.writeln(email[i].firstChild.nodeValue); } }
Il secondo ciclo for però stampa l'email di ogni elemento troppe volte,cioè ogni volta che trova un elemento ,quindi n volta stampa la mail,n=numeri elementi.
Come posso far stampare solo le email di ogni elemento correttamente?
grazie
6 U L T I M E R I S P O S T E (in alto le più recenti)
Mk178
Inserito il - 13/07/2009 : 01:05:14 soluzione:
var persone = xmlDocument.getElementsByTagName("persona");
for(var i =0;i<persone.length;i++) {
var numemail = persone[i].getElementsByTagName("email");
if (numemail.length>=1) {
document.writeln(persone[i].getAttribute("id"));
}
Mk178
Inserito il - 12/07/2009 : 18:31:26 ahaha lol
dunerpenpo
Inserito il - 12/07/2009 : 18:25:25 C'è un errore di sintassi nel commento: non è
/! nn l'ho provato, dunque può esserci qualke errore d sintassi
ma
// nn l'ho provato, dunque può esserci qualke errore d sintassi
Mk178
Inserito il - 12/07/2009 : 18:14:56
for (var i=0;i<elemento.length;i++) {
document.writeln(elemento[i].getAttribute("id"));
//stampa con successo tutti gli id
for (var j=0;j<elemendo.childNode.length;j++) {
//stampo di ogni elemento dell'id corrente
if(elemendo.childNode[j].tagName="email"){
//stampa solo i valori degli "elementi email"
document.writeln(elemendo.childNode[j].firstChild.nodeValue);
}
}
}
/! nn l'ho provato, dunque può esserci qualke errore d sintassi
ciccio007
Inserito il - 12/07/2009 : 16:07:50 Enno anche mettendo j mi stampa per ogni id,tutte le email di TUTTO IL FILE XML. È questa la cosa che non capisco.Non ci sta un modo per ciclare tutti i tag email all'interno di un elemento con id,anzichè ciclare sull'intero file xml?
Galgantur
Inserito il - 11/07/2009 : 19:46:22 sono ignorante e non ho capito cosa fa in realtà la porzione di codice ma mi sa che qui c'è un errore
Citazione:
for (var j=0;j<email.length;j++)
{
//stampo email di ogni elemento
document.writeln(email[i].firstChild.nodeValue);
}
dovrebbe essere
document.writeln(email[j].firstChild.nodeValue);
con la j e non con la i non è che hai sbagliato l'indice per il copiaincolla? o è solo per il forum? o deve essere così?