[era: aiuto !!!] Lettura dati XML e JS

kekko

Nuovo Utente
24 Gen 2006
3
0
0
Ho questo codici ma nn riesco a capire come modificarlo per farlo funzionare per visualizzare il fil xml!

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Visualizzare pi&ugrave; elementi con DOM</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="JavaScript" FOR="window" EVENT="ONLOAD" type="text/javascript">
HTMLCode = " ";
Document = dsostudenti.XMLDocument;
// ciclo per memorizzare gli studenti
for (i=0;
i < Document.documentElement.childNodes.length;
i++)
{
HTMLCode +=
("<span style='font-weight:bold'>Nome : </span>"
+ Document.documentElement.childNodes(i).childNodes(0).text
+ "<br />"
+ "<span style='font-weight:bold'>Cognome: </span>"
+ Document.documentElement.childNodes(i).childNodes(1).text
+ "<br />"
+ "<span style='font-weight:bold'>Matricola: </span>"
+ Document.documentElement.childNodes(i).childNodes(2).text
+ "<br />"
+ "<span style='font-weight:bold'>Titolo di studio: </span>"
+ Document.documentElement.childNodes(i).childNodes(3).text
+ "<br />"
+ "<span style='font-weight:bold'>Telefono: </span>"
+ Document.documentElement.childNodes(i).childNodes(4).text
+ "<br />"
+ "<span style='font-weight:bold'>Email: </span>"
+ Document.documentElement.childNodes(i).childNodes().text
+ "<p>")
}

DisplayDIV.innerHTML=HTMLCode;
</script>

</head>

<body>
<XML ID="dsostudenti" SRC="esercizio3.xml"></XML>

<H2>Elenco studenti</H2>

<DIV ID="DisplayDIV"></DIV>

</body>
</html>

Questo e' il file xml ke dovrebbe stanpare a video

<?xml version="1.0"?>
<!-- nome del file esercizio3.xml-->
<STUDENTI>
<studente>
<nome>Mario </nome>
<cognome>Rossi</cognome>
<matricola>123456</matricola>
<titolo_studio>Maturita Classica</titolo_studio>
<telefono>080-5000</telefono>
<telefono>080-5000</telefono>
<email>neri@uniba.it</email>
</studente>
<studente>
<nome>Gianni</nome>
<cognome>Filippetti</cognome>
<matricola>129457</matricola>
<titolo_studio>Altra Laurea</titolo_studio>
<email>348-5000</email>
</studente>

</STUDENTI>
 

lukeonweb

Utente Attivo
5 Mar 2003
5.180
10
38
42
Napoli
www.lucaruggiero.it
Mi hai fatto impazzire! :)

Ho sistemato il codice XHTML/JS

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Visualizzare pi&ugrave; elementi con DOM</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<xml id="dsostudenti" src="esercizio3.xml"></xml>
<h2>Elenco studenti</h2>
<script language="JavaScript" for="window" event="onload" type="text/javascript">
var HTMLCode = "";
var Document = dsostudenti.XMLDocument;
var lunghezza = Document.documentElement.childNodes.length;
for (var i=0; i<lunghezza; i++)
{
HTMLCode +=
"<p><b>Nome : </b>" + Document.documentElement.childNodes(i).childNodes(0).text + "<br />"
+ "<b>Cognome: </b>" + Document.documentElement.childNodes(i).childNodes(1).text + "<br />"
+ "<b>Matricola: </b>" + Document.documentElement.childNodes(i).childNodes(2).text + "<br />"
+ "<b>Titolo di studio: </b>" + Document.documentElement.childNodes(i).childNodes(3).text + "<br />"
+ "<b>Telefono: </b>" + Document.documentElement.childNodes(i).childNodes(4).text + "<br />"
+ "<b>Email: </b>" + Document.documentElement.childNodes(i).childNodes(5).text + "<p>";
}
document.getElementById("DisplayDIV").innerHTML = HTMLCode;
</script>
<div id="DisplayDIV"></div>
</body>
</html>

Il codice XML, invece, aveva un errore: il campo <telefono> era due volte solo nel primo record, l'ho sistemato. Guarda un po

<?xml version="1.0"?>
<!-- nome del file esercizio3.xml-->
<STUDENTI>
<studente>
<nome>Mario </nome>
<cognome>Rossi</cognome>
<matricola>123456</matricola>
<titolo_studio>Maturita Classica</titolo_studio>
<telefono>080-5000</telefono>
<email>neri@uniba.it</email>
</studente>
<studente>
<nome>Gianni</nome>
<cognome>Filippetti</cognome>
<matricola>129457</matricola>
<titolo_studio>Altra Laurea</titolo_studio>
<telefono>080-5000</telefono>
<email>348-5000</email>
</studente>
</STUDENTI>

Ciao :byebye:
 

lukeonweb

Utente Attivo
5 Mar 2003
5.180
10
38
42
Napoli
www.lucaruggiero.it
C'è senza dubbio qualche incompatibilità che adesso, senza firefox, non posso testare.

In ogni caso XML, per me, deve interfacciarsi con un linguaggio lato server, non lato client.
 

kekko

Nuovo Utente
24 Gen 2006
3
0
0
il codice xml era giusto!L' elemento telefono deve cpmparire 2 volte nel primo studente e nn deve comparire nel secondo studente!Il problema e proprio quello! ke quando nn viene visto trovato un elemento l' HTMLcode risulta nullo
 

kekko

Nuovo Utente
24 Gen 2006
3
0
0
inanzitutto volevo ringraziarvi per la disponibilita...Perke stravolge le regole quel file xml? Nn puo essere ke in un elemento studente ci siamo 2 elementi telefono e in altro studente nn c'e ne siano? Quidi visualizzare il file xml che avevo io con un dom e' impossibile!Se cosi fosse mi spiegeresti il perke?QUesto file nn mi sta facedno dormire tranquillo la notte :crying: :crying:
 

lukeonweb

Utente Attivo
5 Mar 2003
5.180
10
38
42
Napoli
www.lucaruggiero.it
il file xml con due elementi uguali nello stesso nodo viene visualizzato lo stesso nel browser ma non è corretto... è come se su un database avessi due campi con lo stesso nome: il dbms te lo fa creare (credo...) ma poi? è la stessa cosa

il dom non lo riconosce e dovrebbe essere un potivo sufficiente a non usare questo sistema

ti dico

1. usa differentemente il dom, quindi con getElementByTagName (rif. articolo che ti ho segnalato)

2. usalo lato server, non lato client

3. usa i campi

<telefono>000#111</telefono>

nel primo nodo, usando il # come carattere separatore, e

<telefono></telefono>

nel secondo

mi spiego?