Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Parsare xml recursivo

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105

    Parsare xml recursivo

    Ciao a tutti,

    io ho un xml del genere
    codice:
    //folder.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <cartelle>
    	<cartella id="1" parent="null" nome="A">
    		<cartella id="2" parent="1" nome="A1">
    		</cartella>	
    		<cartella id="2" parent="1" nome="A11">
    			<file id=""  nome="F1">
    			</file>
    			<file id=""  nome="F1">
    			</file>
    		</cartella>
    		<cartella id="3" parent="1" nome="A2">
    		</cartella>
    	</cartella>
    
    	<cartella id="4" parent="null" nome="B">
    	</cartella>
    </cartelle>
    E vorrei riuscire a parsarlo in maniera da creare una visiualizzazione in html con i tag ul,li (Da poi passare ad un treeview in jquery).

    la mia domanda e'?? Come si fa, ho passato un giorno a cercare ma le soluzioni presentate erano troppo lontane dalla soluzione. Vi spiego dove mi impianto

    codice:
    			<script type="text/javascript" class="source">
    		$.ajax({
    			        type: "GET",
    				url: "folder.xml",
    				dataType: "text/xml",
    				success: function(xml) {
    					var xmlo = (new DOMParser()).parseFromString(xml, "text/xml");
    						x=xmlo.firstChild;
    						alert(x); // OK MI da il primo element.
    						alert(x.firstChild); //NON OK mi da un Object Text
    						
    						y=x.nextSibling;
    						while (y.nodeType!=1)
    						  {
    							alert(y);
    						  	y=y.nextSibling;
    						
    						  }
    			
    				}
    			});
    Al secondo alert ?? mi ritorna un object Text??? Non dovrebbe essere un Element anche lui???
    Ecco diciamo che cosi per me e impossibile arrivare a fare quello che voglio... qualcuno sa darmi un qualunque consiglio, e magari spiegarmi xke torna un Text e non un Element??
    Testato su FF 3.5.8

    Ciao a ttt e grazie

  2. #2
    Prova con alert(y.parentnode);

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    Ciao Grazie per la risp.

    Se faccio y.parentnode ottengo l emento root, e torno al punto iniziale.

    il fatto e questo io

    con x=xmlo.firstChild; ottengo l emeneto cartella con id=1, come faccio a prendere il suo primo figlio se con firstchild ottengo un textnode?? Ho sbagliato la forma dell xml??

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    Ciao si, e se chiedo il nodeType mi ritorna 3, che appunto e un textNode....
    Ormai non c e speranza devo modificare l xml, cmq resta un mistero il fatto che mi ritorna un text node e non un Obj element.

  6. #6
    E con x.firstChild.firstChild?
    comunque che firstChild ritorna un NodeText è corretto; ma è altrettanto corretto che dopo aver fatto x.firstChild con nodeValue si recupera il valore.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    Ma come mai e corretto??? xke in un caso ho un Element e nell altro un tipo diverso di oggetto?? se cmq il figlio e un Elemento e non un testo?

  8. #8
    Oppure:

    Codice PHP:
    var listChild x.childNodes
    for(var 
    i=0listChild.lengthi++){ 
       var 
    node listChild.item(i); 
       
    //fai i test su node 


  9. #9
    Originariamente inviato da merlo82
    Ma come mai e corretto??? xke in un caso ho un Element e nell altro un tipo diverso di oggetto?? se cmq il figlio e un Elemento e non un testo?

    Perchè può darsi che sia stato inserito uno spazio tra <cartelle> e <cartella>

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    mhhhh ok, forse si l avevo escuso visto che ho usato una lib apposta per generare gli xml. adesso provo grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.