Entra

View Full Version : attraversamento xml DOM con javascript


shinya
18-01-2006, 14:40
Incuriosito dal thread di qualche giorno fa, mi sono documentato un pò su ajax e sto cominciando a provare questo approccio. Sono relativamente nuovo a javascript e xml dom, quindi perdonate la mia ignoranza.
Ho un file xml, questo (chiamiamolo text.xml):


<?xml version="1.0" encoding="ISO-8859-1"?>
<main>
<text1>this is a text</text1>
<text2>this is another one</text2>
<text3>and this is the last</text3>
</main>


Voglio attraversare la gerarchia dei tag e stampare a video il contenuto dei figli di <main>.
Ho buttato giù questo pezzo di codice (xhtml+javascript), ma non funziona; il codice è inteso per essere eseguito su mozilla/firefox e non su explorer (sul quale lavorerò più avanti).


<html>
<title>temp</title>
<head>
<script name="text/javascript">
<!--
var xml_dom = null;

window.onload=function() {
xml_dom = document.implementation.createDocument("", "", null);
xml_dom.load("testo.xml");
xml_dom.onload=parse_xml;
}

function parse_xml() {
var xml_parser = new DOMParser();
var xml_doc = xml_parser.parseFromString("<main>", "text/xml");

var nodes = xml_doc.documentElement.childNodes;
alert(nodes.length); // perchè dice "2"??
for (var i=0; i < nodes.length; i++) {
document.write(nodes[i].nodeValue);
}
}
//-->
</script>
</head>

<body>
</body>
</html>


Una cosa curiosa è che l'alert poco prima del for salta fuori stampando "2", quando invece i figli di <main> sono 3. Però non riesco a capire cosa sbaglio, qualche suggerimento?
Grazie.

shinya
19-01-2006, 13:16
up!

mauroonline
28-01-2006, 09:15
Scusa ma qual'è il tuo scopo ? Te lo chiedo perchè se vuoi usare XML per fare qualche esperimento di qualche paginetta e sei alle prime armi ti consiglio caldamente XML Writer (shareware) che ti permette di gestire un bel progetto completo di DTD/Schema, file XML, e relativo XSL per la visualizzazione a video. (ed ovviamente include il parser validante e non-validante).

Se vuoi info fammi sapere.

ps. se ho interpretato male il tuo discorso fammi sapere ugualmente :D

shinya
28-01-2006, 18:55
Scusa ma qual'è il tuo scopo ? Te lo chiedo perchè se vuoi usare XML per fare qualche esperimento di qualche paginetta e sei alle prime armi ti consiglio caldamente XML Writer (shareware) che ti permette di gestire un bel progetto completo di DTD/Schema, file XML, e relativo XSL per la visualizzazione a video. (ed ovviamente include il parser validante e non-validante).

Se vuoi info fammi sapere.

ps. se ho interpretato male il tuo discorso fammi sapere ugualmente :D

Il mio scopo era quello di tenere i contenuti in uno o più file xml, consultarli via javascript e modificare il dom xhtml per creare una pagina. Nel frattempo comunque ho scoperto che molte persone si sono già sbattute a creare librerie in javascript per impostare un'approccio ajax-style, tipo dojo, a cui sto dando un'occhiata, che pare risolvere questo ed altri problemi (tipo la gestione del cross-browsing).
Ad ogni modo grazie per la risposta :)