PDA

View Full Version : xml + js prendere un valore da un xml


texerasmo
07-05-2007, 11:34
non riesco a fare questa cosa potete aitarmi

ho questo cosa
var nord = xmldoc.getElementsByTagName('nord');
poi faccio questo
alert("Nord "+ nord.item .firstChild.data);
e vedo il valore del tag


ma se provo a predermi il valore dell'attributo del tag nulla da fare

alert("att Nord "+ nord.item .firstChild.getAttribute('long'));

andbin
07-05-2007, 12:03
non riesco a fare questa cosa potete aitarmi

ho questo cosa
var nord = xmldoc.getElementsByTagName('nord');
poi faccio questo
alert("Nord "+ nord.item .firstChild.data);
e vedo il valore del tag


ma se provo a predermi il valore dell'attributo del tag nulla da fare

alert("att Nord "+ nord.item .firstChild.getAttribute('long'));Sei sicuro che 'item' (di NodeList) abbia una proprietà 'firstChild'??? A me non risulta. 'item' è un metodo che prende come argomento l'indice del nodo.

texerasmo
07-05-2007, 13:22
ho sirolto così
var ovest = xmldoc.getElementsByTagName('ovest');
ovest(0).getAttribute('lat')

andbin
07-05-2007, 13:26
ho sirolto così
var ovest = xmldoc.getElementsByTagName('ovest');
ovest(0).getAttribute('lat')Sicuro?? ovest non è un metodo, quindi non vedo come possa funzionare fare ovest(0)

texerasmo
07-05-2007, 14:44
si si per funziona

Invece non riesco a fare questa cosa puoi aiutarmi?

ho un xml fatto così

<rubrica>
<localita>
<nome>nome1</nome>
<nome>nome2</nome>
<nome>nome3</nome>
<nome>nome4</nome>
</localita>

volevo popolarmi un combo con questi valori come posso fare con javascript

andbin
07-05-2007, 15:23
si si per funzionaFammi indovinare ... stai lavorando con IE. Con IE funziona fare ovest(0). Con Firefox no.

Invece non riesco a fare questa cosa puoi aiutarmi?

ho un xml fatto così

<rubrica>
<localita>
<nome>nome1</nome>
<nome>nome2</nome>
<nome>nome3</nome>
<nome>nome4</nome>
</localita>

volevo popolarmi un combo con questi valori come posso fare con javascriptIntanto estrai i dati dal XML con il DOM, poi sempre con il DOM crei i tag <option> da mettere dentro una <select> nella pagina HTML.

texerasmo
07-05-2007, 15:26
non riesco a prendermi i dati dall xml
come posso ciclare.

andbin
07-05-2007, 15:34
non riesco a prendermi i dati dall xml
come posso ciclare.Localizza tramite DOM il nodo <localita> quindi usa getElementsByTagName per prendere la lista dei nodi <nome>

texerasmo
07-05-2007, 15:50
io sono arrivato qui

var localita = xmldoc.getElementsByTagName('localita');



for (i=0; i<localita.length; i++) {
alert("dddd");
}

poi mi blocco

andbin
07-05-2007, 16:08
poi mi bloccoInnanzitutto nel XML hai 1 solo tag <localita> o più di uno? La <select> da popolare quindi è 1 sola? È già presente nel documento HTML oppure devi crearla dinamicamente?

texerasmo
08-05-2007, 13:57
ok ci sono riuscito


ho fatto così

for (i=0; i<localita.length; i++) {
// Mostra +="<select onChange=javascript:stopStart("+ovest(0).getAttribute('lat')+","+ovest.item(0).firstChild.data+ ","+zoom.item(0).firstChild.data +",this.value)>";

Mostra +="<select onChange=javascript:stopStart('0','0',"+zoom.item(0).firstChild.data +",this.value)>";

var num= localita[i].getElementsByTagName('nomeloc');
for (j=0; j<num.length; j++) {
// alert(j);
// alert(localita[i].getElementsByTagName('nomeloc').item(j).firstChild.nodeValue);
Mostra += "<option value='"+localita[i].getElementsByTagName('nomeloc').item(j).firstChild.nodeValue+"'>"+localita[i].getElementsByTagName('nomeloc').item(j).firstChild.nodeValue+"</option>";
}
Mostra +="</select>";

comboloc.innerHTML = Mostra;
// alert(localita[i].getElementsByTagName('nome').item(0).firstChild.nodeValue);
}//chiudo for localita.length