|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
[DOM xml] visualizzare contenuto nodi xml tramite DOM
ciao a tutti, sto cercando di accedere tramite DOM al seguente file xml (lo so che è stupido ma è un file di test
<?xml version="1.0" ?> <root> <pirla>test di prova motore ricercasssssss</pirla> <pirla>test di prova motore ricercazzzzzzzzz</pirla> <pirla>test di prova motore ricercaq1dxzcs</pirla> <pirla>test di prova motore ricercafcn bnf</pirla> <pirla>test di prova motore ricedsasada</pirla> <pirla>test di prova motore ricefdasda</pirla> <pirla>test di prova motore rice4324 <pirladentro> sono il pirla che sta dentro </pirladentro> </pirla> <pirla> <pirladentro> ennesimo pirla </pirladentro> test di prova motore ricerrred</pirla> <pirla>test di prova motore ricdasd</pirla> </root> la parte di codice di cui non capisco il funzionamento è questa: var root_node = xmldoc.getElementsByTagName('pirladentro'); //restituisce una nodelist var lunghezza = root_node.length; alert(lunghezza); alert(root_node.firstChild.data); in teoria dovrei ottenere in root_node una nodelist con dentro i due nodi 'pirladentro' del documento..o no? perchè se poi provo a stampare la variabile lunghezza funziona e mi stampa correttamente 2, ma se cerco di accedere al firstChild di root_node non accade nulla? non dovrebbe stamparmi il contenuto del primo nodo 'pirladentro' cioè "sono il pirla che sta dentro" ? grazie a chi volesse illuminarmi..
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
restituisce appunto una lista di nodi, non un nodo xml che ha dei child e dei sibling (anche perchè non rispetta più la struttura dell'xml), iteraci sopra con un loop:
Codice:
var listanodi = xmldoc.getElementsByTagName('pirladentro');
var lunghezza = listanodi.length;
for (var i = 0; i < lunghezza; i++)
{
var pirladentro_nodo = listanodi[i];
//
}
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
intanto grazie perchè è la seconda volta che mi aiuti
for (var i = 0; i < lunghezza; i++) { var pirladentro_nodo = listanodi[i]; 1 alert(pirladentro_nodo); 2 alert(pirladentro_nodo.firstChild.data); 3 alert(pirladentro_nodo.data); } ma nessuno dei 3 fa quello che speravo..non dovrebbe (almeno uno dei 3
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
mmmmm
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
RISOLTO!...girando un pò di documentazione..ho scritto questo:
var nodelist = xmldoc.getElementsByTagName('pirladentro'); var lunghezza = nodelist.length; for (var i = 0; i < lunghezza; i++){ document.write(nodelist[i].childNodes[0].nodeValue); document.write("<br>"); } cioè itero nodelist e stampo per ogni nodo il nodeValue, solo che per accederci devo accedere prima al campo childNodes[0] di ogni nodo..e non ho ben capito perchè..
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
firstChild e childNodes[0] è la stessa cosa... non è che stai usando listanodi e non nodelist?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
mmm..no ho controllato bene...beh ora funzia
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:23.



















